目前我有一个名为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;运行时客户端密码,以便为客户端连接的每个端点进行身份验证。显然,由于在客户端保持运行时存储的明文密码,因此存在缺陷。有什么可以替代呢?
答案 0 :(得分:0)
您可以使用microsoft的加密框架加密密码。 simple encryption c#
我知道这不会直接解决您保持用户登录的问题,但根据要求,它可以替代将密码存储为明文。