2015-06-10 259 views
1

我使用MVC 5默認模板選擇「個人賬戶」進行身份驗證。它使用ASP .NET身份與實體框架。Asp .NET身份Cookie身份驗證

使用Chrome我打開了應用程序並註冊了一個用戶,然後與用戶一起登錄。我不小心刪除了數據庫。現在,當我在Chrome中再次打開該應用程序時,它仍顯示我已登錄,因爲auth cookie在瀏覽器中仍然存在。但是,登錄的用戶在數據庫中不存在。

這是正確的行爲嗎?
如果沒有,那麼如何防止它的任何建議?

回答

2

這是正確的行爲。只要auth cookie有效且未過期,您的應用程序就會假定用戶已通過身份驗證。

當您禁用或(軟)刪除用戶時,應該調用UserManager.UpdateSecurityStamp(string userId),這會導致auth cookie在下次檢查時無效。

+0

想象一下,用戶登錄並且他的帳戶被管理員暫停或刪除的情況。然後在下一次服務器調用時,用戶應該被踢出,這不會發生。我不知道是否有一個乾淨的方式來做到這一點。 –

+0

我已經更新了我的答案。 – Martin

+0

完美的是我一直在尋找的。謝謝馬丁! –