2012-05-12 46 views
2

我使用的是vanilla表單身份驗證。如果我有多個會話作爲同一個用戶打開,並且我在一個會話中更改密碼,則另一個會話仍然會進行身份驗證。更改密碼後FormsAuthentication在會話中仍可使用

我希望第二次會議會再次提示我輸入我的憑證。

我需要將哈希密碼寫入cookie並檢查每個請求以獲取此功能嗎?

似乎像一個安全漏洞給我。

+1

您必須自己強制執行此操作,而且我不確定它是否值得。一旦通過身份驗證,您的身份就會得到驗證,直到您退出,超時,刪除您的Cookie等爲止。 – peroija

+1

如果筆記本電腦或其他東西被盜,並且使用持久cookie登錄,該怎麼辦?我會假設更改我的密碼將有效地取消所有其他會話的授權。 – mattdwen

回答

2

這是預期的行爲。 FormsAuthentication僅存儲用戶信息(使用其他一些數據來驗證服務器實際上是否生成了該cookie)。 cookie本身就是有效的憑證(或票據或聲明)。如果你擔心這個問題,你應該減少表單cookie有效或潛在的電話回家的時間,以便更頻繁地詢問服務器是否發生了密碼更改,如果是這樣,則執行FormsAuthentication.SignOut()登錄。

也許不是你想要FormsAuthentication做什麼,但它做了什麼。

希望這會有所幫助。

0

正如我在評論中提到的那樣,如果這是您想要的行爲,您需要自己強制執行此操作。這可能與從您自己的「SecureBasePage」派生所有安全頁面一樣簡單。在那個安全頁面中,您可以查詢您的數據庫,查看自用戶獲得授權後密碼是否已更改。

相關問題