2014-07-04 29 views
-2

我是新的web矩陣和web安全概念。我使用IsAccountLockedOut(String, Int32, Int32)方法來檢查指定的成員帳戶是否由於在指定的秒數內失敗的密碼嘗試失敗而被暫時鎖定。這裏的東西是解鎖後(更新Db中的解鎖日期時間)成員帳戶後,我被鎖定了一個錯誤的密碼,但我的數據庫被配置爲允許3次嘗試。你能否告訴我如何解決問題或給解鎖代碼示例。解鎖用戶不在Webmatrix中工作WebSecurity.IsAccountLockedOut方法

回答

0

我不知道它是否能對您有用,但WebMatrix的入門網站模板在賬戶/ Login.cshtml頁面實現了使用WebSecurity.GetPasswordFailuresSinceLastSuccess()方法的帳戶鎖定系統:

if (WebSecurity.UserExists(email) && 
     WebSecurity.GetPasswordFailuresSinceLastSuccess(email) > 4 && 
     WebSecurity.GetLastPasswordFailureDate(email).AddSeconds(60) > DateTime.UtcNow) 
{ 
    Response.Redirect("~/Account/AccountLockedOut"); 
    return; 
} 

編輯

此代碼段考慮了LastPasswordFailureDate和webpages_Membership表的PasswordFailuresSinceLastSuccess字段並鎖定一個帳戶,如果失敗的次數超過一個給定值(4中的例子)對於第二給定數目的s(在這個例子中是60)。

無需在另一個表中管理「UnlockDateTime」。

+0

那麼,如何解鎖賬戶?在我們的項目中,我們正在更新Db中的「UnlockDateTime」字段以解鎖用戶帳戶。這是正確的方法嗎?或者有其他更好的方法嗎? – hemachandran

+0

@hemachandran我已經編輯了一些解釋我的答案 – GmG