私は5つの操作契約を持つWCFサービスを持っています。このサービスを使用しているユーザーが 200 人いるとします。現在、新しい 50 のクライアントは、この WCF サービスから 3 つの操作のみを必要としています。
3 つの操作のみを使用し、他の 2 つの操作をブロックするように制限するにはどうすればよいですか?
私は5つの操作契約を持つWCFサービスを持っています。このサービスを使用しているユーザーが 200 人いるとします。現在、新しい 50 のクライアントは、この WCF サービスから 3 つの操作のみを必要としています。
3 つの操作のみを使用し、他の 2 つの操作をブロックするように制限するにはどうすればよいですか?
おそらく、ある種の役割ベースの承認を検討するのが最善でしょう。これは、datacontract の属性として簡単に実装できます。その特定のユーザーが承認されているかどうかを判断する実際のロジックは、完全に設計によるものです。
または、別のインターフェイスが定義されている別のエンドポイントを公開し、コードを再利用するために共有メソッドを使用することもできます。
public Interface IInterface1
{
void Method1(int something);
void Method2(int something);
}
public Interface IInterface2
{
void Method1(int something);
void Method3(int something);
}
public InterfaceImplementation1 : IInterface1
{
public void Method1(int something)
{
SharedClass.SharedMethod1(something);
}
public void Method2(int something)
{
SharedClass.SharedMethod2(something);
}
}
public InterfaceImplementation2 : IInterface2
{
public void Method1(int something)
{
SharedClass.SharedMethod1(something);
}
public void Method3(int something)
{
SharedClass.SharedMethod3(something);
}
}
public class SharedClass
{
public static void SharedMethod1 (int something)
{
DoSomething(something);
}
public static void SharedMethod2 (int something)
{
DoSomething(something);
}
public static void SharedMethod3 (int something)
{
DoSomething(something);
}
}