维护两个服务端点的会话

时间:2015-01-09 09:54:41

标签: c# wcf

目前我有一个名为StockControl.Service的服务,它继承了两个名为IAuthenticationService和IUserManagementService的契约。它们在app.config中的两个独立端点上公开,如下所示。

     <service behaviorConfiguration="CustomServiceBehavior" name="StockControl.Service.StockService">
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CustomServiceBinding"
      contract="StockControl.Service.IAuthenticationService" />
    <endpoint address="/UserManagement" binding="wsHttpBinding" bindingConfiguration="CustomServiceBinding"
      contract="StockControl.Service.IUserManagementService" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733/Design_Time_Addresses/StockControl.Service/Service1/" />
      </baseAddresses>
    </host>
  </service>

我想要的是,一旦您使用其中一个端点进行身份验证,就会在所有端点之间维护会话,以免您不得不对每项服务进行重新验证。

这可能吗?

如果没有,我能想到的唯一解决方案是存储用户输入的用户名&amp;运行时客户端密码,以便为客户端连接的每个端点进行身份验证。显然,由于在客户端保持运行时存储的明文密码,因此存在缺陷。有什么可以替代呢?

1 个答案:

答案 0 :(得分:0)

您可以使用microsoft的加密框架加密密码。 simple encryption c#

我知道这不会直接解决您保持用户登录的问题,但根据要求,它可以替代将密码存储为明文。