我試圖在一個相當大的ASP.NET Web應用程序(C#)上工作一些安全問題。爲了防止會話固定攻擊,我希望每次用戶驗證自己時都生成一個新的會話ID。但是,我只想生成一個新的會話ID而不會丟失會話的其餘部分。關於這個話題做一些研究之後,我發現一對夫婦工作的解決方案:在登錄時生成一個新的SessionID(ASP.NET)
解決方案1:Generating new SessionId in ASP.NET
這表明通過將其設置爲空字符串手動清除會話cookie。但是,這需要頁面刷新或使用AJAX來確保cookie確實會被刪除,在我的具體情況下這不是一個真正可行的選項。
解決方案2:Generating a new ASP.NET session in the current HTTPContext
我已經實現了這種做法,它按預期工作。然而,正如原始海報所述,這並不是你可能稱之爲優雅的解決方案。此外,這個職位已經有幾年了,我希望現在可能會有更好的解決方案。
我想知道的是,如果有任何替代方案可以做到這一點,那麼我在研究中錯過了,或者如果解決方案2可能沒有操縱會話管理內部組件。
我與你和AFAIK有同樣的問題,solution2與solution1基本相同,都嘗試爲當前httpcontext重新生成一個新的sessionid。 終於我找到了這個鏈接:http://stackoverflow.com/questions/5502435/regenerate-sessionid-in-asp-net,並做到了成功。這是一個更簡單的方法來解決這個問題。 – pinopino
最後,有沒有什麼辦法可以解決你的問題?還是你解決了自己?請分享您的解決方案,讓每個人都可以獲得更多知識。 XD –