2016-09-01 103 views
1

我們有一個Web API,由OWIN Cookie身份驗證中間件發佈的Cookie保護。Web API Cookie和會話存儲

除了通過cookie認證中間件所產生的通用的身份認證領域,Cookie也存儲自定義字段,如用戶ID,姓名,...

在Web API的多個實例的情況下被部署在一個負載均衡器,我們是否需要在SQL/Redis/...中持久化會話?

謝謝。

+0

不,cookie身份驗證基於cookie存儲在客戶端,不在會話中。因此,您不需要爲負載平衡做任何事情 –

+0

而且服務器不需要存儲與cookies /會話相關的任何內容?我試圖從微軟找到一個參考,但找不到一個。你能爲我指出正確的方向嗎?謝謝。 – JCS

+0

Cookie是從客戶端到服務器的每個HTTP請求發送的,因此您不需要在服務器端存儲。我不知道我能爲你找到一個合適的人,但你可以先搜索一下,以獲得更多的理解。 –

回答

0

因此,瞭解Cuong Le所說的並且看着Microsoft.Owin.Security.Cookies的source code,可以發現默認情況下服務器端不需要存儲。

僅當設置屬性IAuthenticationSessionStore時才需要存儲。源代碼註釋如下:

/// <summary> 
    /// An optional container in which to store the identity across requests. When used, only a session identifier is sent 
    /// to the client. This can be used to mitigate potential problems with very large identities. 
    /// </summary> 
    public IAuthenticationSessionStore SessionStore { get; set; } 

我希望這有助於!