2010-04-09 173 views
15

我有一个想要支持basicHttpBinding和webHttpBinding的WCF服务。当客户端成功登录时,服务器将在后面的所有请求中为客户端生成一个令牌传递给服务器。问题是客户如何将令牌传递给服务器?我不想在每个Web方法中添加一个额外的参数来保存令牌。WCF如何通过令牌进行身份验证?

回答

17

通常情况下,做这样的事情的最好方法是在WCF头中传递这样的“元信息”。你可以很容易地创建一个消息检查器来扩展WCF(它实际上并不那么可怕,也很难做到!),它将令牌插入到客户端的每个传出请求中,并从头部检索它并在服务器端进行验证。

有一些相当不错的博客文章在那里的向您展示如何创建一个消息检查:

时退房两个相关的接口来实现:

  • 在客户端侧,其具有BeforeSendRequestAfterReceiveReply消息来实现在服务器端,其具有AfterReceiveRequestBeforeSendReply方法来实现
+0

由于

  • IDispatchMessageInspectorIClientMessageInspector,其工作正常。这正是我需要的。 – Kevin 2010-04-09 10:58:51

  • +0

    在标头中传递令牌不会引发安全问题? – 2017-04-12 07:24:15

    +0

    @学习我知道这是一条旧评论,但至少应该使用安全连接,对于只有您和客户知道如何实施的令牌应用某种加密是个好主意。 – Silvermind 2017-06-19 08:31:17

    相关问题