我讀到https連接下運行的頁面無法與另一個頁面(基於cookie)共享一個InProc會話(或同樣的事情)定期http。我的網站運行在Server 2003,IIS 6和.Net 2.0上。如何在http和https之間共享一個asp.net會話
經過一些實驗後,似乎在通過https連接時存儲會話中的數據的頁面CAN隨後即使在純http下運行也可以訪問數據。
那麼,是否有可能或應該去檢查SSL配置中的缺陷?
我讀到https連接下運行的頁面無法與另一個頁面(基於cookie)共享一個InProc會話(或同樣的事情)定期http。我的網站運行在Server 2003,IIS 6和.Net 2.0上。如何在http和https之間共享一個asp.net會話
經過一些實驗後,似乎在通過https連接時存儲會話中的數據的頁面CAN隨後即使在純http下運行也可以訪問數據。
那麼,是否有可能或應該去檢查SSL配置中的缺陷?
從MSDN:
當用戶移動回安全和公共區, ASP.NET生成會話cookie(或 URL之間來回 如果已經啓用了cookie的 會話狀態)與他們一起在 明文中移動,但身份驗證 cookie永遠不會被傳遞 未加密的HTTP連接只要 由於安全cookie屬性設置爲。
因此基本上,如果Secure
屬性設置爲false
,則Cookie可以通過HTTP和HTTPS傳遞。
我已經加入這個我Global.asax
文件避免了這個問題:
void Session_Start(object sender, EventArgs e)
{
if (Request.IsSecureConnection) Response.Cookies["ASP.NET_SessionID"].Secure = false;
}
這意味着,如果通過HTTP創建會話cookie,它只會通過HTTPS訪問。
尋找問題到目前爲止還沒有出現太多討論,仍在尋找。
編輯:好的現在找到一些東西。
如果兩組頁面都在同一個應用程序/網站中,它似乎能正常工作。
所以我會繼續前進,感覺放心。
IIS設置 在IIS屬性窗口,ASP的選項卡下 - >會話屬性,有一個
我通過設置這個固定的這個間歇性問題,爲自己「上的安全連接的新ID」的設置假。
這似乎已在IIS7中消失 - 或者我只是不清楚在哪裏可以找到。這是每個站點還是全局的服務器? – 2013-05-04 21:52:38
如果上述任何解決方案不起作用,請嘗試此操作。經過幾天的研究,我已經弄清楚了這一點。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
...
...
CookieSecure = CookieSecureOption.Never
});
關閉此功能會帶來什麼樣的安全隱患? – 2015-09-03 23:07:57