2010-04-09 64 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

    相關問題