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