1

我在我的MVC4應用程序中使用SimpleMembershipProvider。看起來,諸如強制密碼複雜性,最大登錄嘗試次數等事情並不像內建在早期版本框架中的提供者那樣內置於此提供者中。是否有任何內置的方式來處理SimpleMembership這些事情,或者我必須推出自己的。MVC4簡單的會員密碼處理

此外,什麼散列算法做了SimpleMemberhip提供商使用,我應該擔心,這似乎並沒有被使用的鹽(即鹽列在我webpage_membership表是空的)

回答

6

我還沒有找到密碼複雜性執行,我是MVC自己的新手。但是,SimpleMembership的Login方法有一個覆蓋,指定失敗嘗試的最大次數和鎖定期(以秒爲單位)。以下是我登錄POST控制器操作的一個示例,它將在3次嘗試後鎖定帳戶:

public ActionResult Login(LoginModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      if (WebSecurity.IsAccountLockedOut(model.UserName, 3, 300)) 
      { 
       ModelState.AddModelError("", "Your account has been locked due to excessive log in failures. Please try again in 5 minutes."); 
       return View(model); 
      } 
      else if (WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
      { 
       return RedirectToLocal(returnUrl); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     ModelState.AddModelError("", "The user name or password provided is incorrect."); 
     return View(model); 
    } 
1

我想你可以使用構造函數重載爲MembershipProvider的實例提供這些密碼需求屬性集,然後SimpleMembershipProvider將使用這些值。

關於哈希它使用PBKDF2這意味着你不應該擔心這一點。