我有5个操作合同的WCF服务。假设200个用户使用此服务。 现在,新的50个客户端只需要来自此WCF服务的3个操作。
如何限制它们仅使用3并阻止其他2个操作?
答案 0 :(得分:3)
您可能最好看一下基于角色的授权。这可以很容易地作为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);
}
}