【发布时间】:2011-03-18 17:31:55
【问题描述】:
我有一个使用基本身份验证的 RESTful WCF 服务、一个自定义服务主机和一个 .我已经设置了一个自定义的 UserNamePasswordValidator,并且一个自定义的 IPrincipal 正确地流向了操作。但是,对于遗留互操作性,我需要支持不同的身份验证模式。它应该工作的方式是:
- 用户 POST 到登录 URI
- 服务如上所述对用户进行身份验证,但返回会话令牌(加密的用户凭据)作为 HTTP 响应标头。
- 来自用户的所有后续请求都包含会话令牌而不是基本身份验证。
我目前的想法是:如果会话令牌包含加密的凭据,那么应该可以操纵传入的消息,解密凭据并用基本身份验证标头替换会话标头。我的问题是找到一个可扩展点:
- 以某种方式公开消息属性并且
- 在自定义 UserNamePasswordValidator 执行之前执行..
你们中的任何一位大师都知道这样的可扩展点,或者自定义传输安全机制的方法吗?老实说,我对这里的大量选项感到困惑,在 Reflector 中浏览 System.ServiceModel 命名空间是一种令人沮丧的练习。
谢谢!
【问题讨论】:
-
我也想知道这是否可能。无法找到太多关于使用 sessionKey 进行后续身份验证请求的想法。
标签: c# wcf rest basic-authentication