私たちの会社には、他の開発者チームが使用できるように公開したい Web サービスがあります。それでも、誰がそれを使用するか、およびこの特定のメソッドを呼び出すことが許可されているかどうかを制御したいと考えています。
したがって、Web サービスを使用したい各チームに、このキーを使用して呼び出し元が呼び出すことができるメソッドを示すキーを割り当てるソリューションを考え出しました。このキーは、各メソッドにパラメーターとして渡されます。このキーをパラメーターとして使用すると、次のようにすべてのメソッドの開始時にセキュリティ チェックを実行できます。
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
}
しかし、私はすべての方法でそれをしなければなりません...そして、すべての新しい方法とすべての新しいWebサービスでそれについて覚えておく必要があります. 質問は次のとおり
です。メソッドの本体でチェックを明示的に呼び出すたびに、メソッドが呼び出されたときにこのチェックが実行されるようにクラスを設計する方法はありますか?
そうは思いませんが、常に尋ねる価値があります。