WCF如何传递令牌进行身份验证?
Posted
技术标签:
【中文标题】WCF如何传递令牌进行身份验证?【英文标题】:WCF how to pass token for authentication? 【发布时间】:2011-02-06 00:03:42 【问题描述】:我有一个希望支持 basicHttpBinding 和 webHttpBinding 的 WCF 服务。当客户端成功登录时,服务器将生成一个令牌供客户端在以后的所有请求中传递给服务器。问题是客户端如何将令牌传递给服务器?我不想在每个 web 方法上添加一个额外的参数来保存令牌。
【问题讨论】:
【参考方案1】:通常,执行此类操作的最佳方法是在 WCF 标头中传递此类“元信息”。您可以轻松地创建一个消息检查器来扩展 WCF(实际上并没有那么可怕和难做!),它将令牌注入到来自客户端的每个传出请求中,并从标头中检索它并在服务器端对其进行验证。
有很多不错的博客文章向您展示了如何创建消息检查器:
理查德·霍尔格伦的WCF postings Writing a WCF message inspector Automatic Culture Flowing with WCF by using Custom Behaviour查看要实现的两个相关接口:
IClientMessageInspector 在客户端,有一个BeforeSendRequest
和 AfterReceiveReply
消息要实现
服务端IDispatchMessageInspector,有AfterReceiveRequest
和BeforeSendReply
方法实现
【讨论】:
在标头中传递令牌不会引发安全问题? @Learning 我知道这是一个旧评论,但您至少应该使用安全连接,并且最好对只有您和客户知道如何实施的令牌应用某种加密.以上是关于WCF如何传递令牌进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章