公开基于客户的操作

时间:2013-08-28 10:43:28

标签: wcf wcf-security

我对WCF中的一个场景感到困惑。

我在WCF服务“SERVICE1”上有两个操作“OP1”和“OP2”。

有两个客户端正在使用服务“CLIENT1”和“CLIENT2”。

条件是“CLIENT1”只能在“CLIENT2”被限制为“OP2”时调用“OP1”。

1 个答案:

答案 0 :(得分:1)

重构您的服务合同以公开两个端点,其接口仅与使用它的客户端相关:

   [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        void OperationOne();
    }

    [ServiceContract]
    public interface IService2
    {
        [OperationContract]
        void OperationTwo();
    }

    public class MyServcie: IService1, IService2
    {
        //Implementation here...
    }

这样IService1的客户端甚至不知道IService2上的方法是否存在。

这不仅限于WCF - 这也是OOP的好习惯....