【发布时间】:2015-01-09 13:21:22
【问题描述】:
在创建 WCF 服务应用程序时,我已经为自定义身份验证实现了 UserNamePassValidator,这可以按预期工作。
但由于服务上的大量功能,我已将其解耦为不同的服务合同,例如库存管理服务、位置管理服务、任务管理服务等,然后我将它们暴露在不同的端点上在同一个服务中。
这似乎工作正常,但是我更喜欢使用一个端点进行身份验证,并在所有端点上维护此会话状态。目前发生的情况是我对一个端点进行身份验证,然后我可以访问该服务合同的功能,但如果我要连接到另一个端点,则需要我再次进行身份验证。
我当前的关键解决方案是在客户端的表单之间传递 ClientCredentials 以进行身份验证,尽管它使用消息安全性,因此它们通过网络进行加密,这显然不是一个理想的解决方案。
第一部分有解决方案吗?如果没有,在客户端将用户输入的凭据存储在内存中(在运行时)的最佳做法是什么。
【问题讨论】:
标签: c# web-services wcf authentication