我們在我們的ASP.Net MVC3網站中啓用了無Cookie身份驗證和會話。我們遇到的問題是,如果您註銷用戶,則不會使存儲在無Cookie的字符串中的已創建Cookie /會話無效。該場景如下:ASP.Net Cookieless:如何刪除身份驗證Cookie
用戶登錄到站點,使用無cookie身份驗證進行註冊和登錄;用戶現在在他們的url中擁有無cookie的票證。用戶通過創建桌面快捷方式複製並粘貼url。
用戶從站點註銷並調用FormAuthentication.SignOut()以使該票證失效並被重定向到登錄頁面。
用戶現在可以簡單地將該URL複製並粘貼到任何瀏覽器中,甚至可以轉到另一臺計算機,即使它們已經註銷,該網站也會接受該認證憑單;造成嚴重的安全風險。
有沒有什麼方法可以禁用所有以前的cookie,無論是否cookieless?目前,我們的流程適用於基於cookie的會話/登錄;我們只需要一個無cookie的解決方案。
我們目前發現的唯一可能的解決方案是跟蹤數據庫中的所有cookie,並使數據庫中的cookie無效以及檢查數據庫以確保當前cookie仍然有效。這會對性能產生重大影響,所以我們希望在向前邁進之前驗證這是唯一的/最佳的解決方案。
感謝
非常感謝你;對於延遲迴答抱歉。它有點忙。我喜歡你的HttpCache解決方案;將用於當前版本。我們將來會把它移到一個網絡農場,那麼我們要麼將它移動到數據庫,要麼使用跨越農場的分佈式緩存。 – Gustyn