Asp.net
如何在 http 和 https 之間共享 asp.net 會話
我讀到在 https 連接下執行的頁面無法與在正常 http 下執行的另一個頁面(或相同的頁面)共享 InProc 會話(基於 cookie)。我的站點在 Server 2003、IIS 6 和 .Net 2.0 上執行。
經過一些實驗後,似乎在通過 https 連接時在會話中儲存數據的頁面可以隨後訪問數據,即使在純 http 下執行也是如此。
那麼,是否有可能或者我應該去尋找 SSL 配置中的缺陷?
來自MSDN:
當使用者在安全區域和公共區域之間來回移動時,ASP.NET 生成的會話 cookie(或 URL,如果您啟用了無 cookie 會話狀態)以純文字形式與它們一起移動,但身份驗證 cookie 永遠不會通過未加密的 HTTP 傳遞只要設置了 Secure cookie 屬性,就可以連接。
Secure所以基本上,如果屬性設置為,cookie 可以通過 HTTP 和 HTTPS 傳遞false。我通過將其添加到我的
Global.asax文件中避免了這個問題:void Session_Start(object sender, EventArgs e) { if (Request.IsSecureConnection) Response.Cookies["ASP.NET_SessionID"].Secure = false; }這意味著如果會話 cookie 是通過 HTTP 創建的,它只能通過 HTTPS 訪問。