我已經實現ASP.Net身份跟隨這裏的示例代碼之後: https://github.com/rustd/AspnetIdentitySampleASP.Net身份Identity.IsAuthenticated仍然是正確的,即使刪除用戶
我在執行我檢查,如果用戶進行身份驗證 - 這是從我的MVC控制器上的FilterAttribute調用;這個想法是我想確認在提供頁面之前他們仍然是auth'ed。
所以在我的過濾器,下面的代碼最終會被調用:
_authenticationManager.User.Identity.IsAuthenticated;
_authenticationManager
是在這裏:
private IAuthenticationManager _authenticationManager
{
get
{
return _httpContext.GetOwinContext().Authentication;
}
}
的_httpContext
傳遞到我的identityProvider類的構造函數。
現在 - 一旦我登錄,_authenticationManager.User.Identity.IsAuthenticated;
返回true
預期。
但是,在開發過程中,我傾倒並重新播種了我的數據庫,而無需添加用戶。如此有效,我刪除了IdentityUser - 但_authenticationManager.User.Identity.IsAuthenticated;
STILL返回true
任何想法,爲什麼這是?我只能假設它以某種方式檢查cookie,而不是實際查看數據庫。它是否正確?
還是我搞砸了我的執行.....
一般來說,數據庫不會在每個請求上被檢查; cookie(或其他機制)正在存儲包括登錄信息的加密細節。在再次檢查後備存儲之前,登錄將保持有效。 –
嗯...所以對我來說,使'IsAuthenticated'屬性浪費空間,如果不是的話,那就是安全漏洞!我可以刪除一個用戶,以防止他們訪問,但這可以讓他們徘徊在.. O_o – Darren
你應該鎖定他之前像刪除他像whith許多無效的登錄嘗試 – CheGueVerra