우리는 우리 회사에서 다른 개발자 팀을 위해 사용하고자하는 웹 서비스를 제공하고 있습니다. 그래도 우리는 누가 그것을 사용하는지, 그리고 그가이 특정 방법을 호출 할 수 있는지 여부를 제어하려고합니다.웹 메소드 본문 외부의 웹 서비스 인증
따라서 웹 서비스를 사용하려는 각 팀에게이 키를 사용하는 호출자가 호출 할 수있는 메서드를 알려주는 키를 할당하는 솔루션을 제안했습니다. 이 키는 매개 변수로 각 메소드에 전달됩니다. 나는이 같은 모든 메소드의 시작 부분에서 보안 검사를 수행 할 수있는 매개 변수로이 키를 갖는
private bool CanCallMethod(string methodIdentifier, string authenticationKey)
{
//check in db
}
public object GetLocation(string authenticationKey, int param1, string param2)
{
if (!CanCallMethod(someMethodIdentifier, authenticationKey))
throw new UnauthorizedAccessException();
//method body
}
public object SetLocation(string authenticationKey, DateTime param1)
{
if (!CanCallMethod(someOtherMethodIdentifier, authenticationKey))
throw new UnauthorizedAccessException();
//method body
}
을하지만 모든 방법으로 그것을해야 ... 그리고 나는 모든 새로운 방법에 대해 기억해야 그리고 모든 새로운 웹 서비스에서. 질문은 다음과 같습니다.
메서드 클래스의 체크를 명시 적으로 호출 할 때마다 메서드가 호출되지 않을 때이 검사가 수행되도록 클래스를 디자인 할 수있는 방법이 있습니까?
글쎄, 그렇게 생각하지는 않지만 항상 물어볼 가치가있다.
어떤 유형의 웹 서비스입니까? WCF? 평안한? –