1

MVC4 애플리케이션에서 SimpleMembershipProvider를 사용하고 있습니다. 암호 복잡성, 최대 로그인 시도 횟수 등과 같은 것들은 이전 버전의 프레임 워크에서 사용 가능한 공급자와 마찬가지로이 공급자에 내장되어 있지 않은 것으로 보입니다. SimpleMembership으로 이러한 작업을 처리 할 수있는 방법이 있습니까? 아니면 내 사이트를 롤백해야합니까? 또한MVC4 단순 회원 비밀번호 처리

는 알고리즘이 SimpleMemberhip 제공자의 사용을 수행하고 나는 그것이 소금을 사용하지 않는 것 걱정해야 무엇을 해싱 나는 당신이 할 수있는 생각

답변

6

암호 복잡성 적용을 아직 찾지 못했습니다. MVC에 익숙하지 않습니다. 그러나 SimpleMembership의 로그인 메소드에는 무시 횟수와 잠금 기간 (초)을 지정하는 오버라이드가 있습니다. 다음은 3 회 시도 후에 계정을 잠그는 로그인 POST 컨트롤러 동작의 예입니다.

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

(즉, 소금 열은 내 webpage_membership 테이블에 비어) SimpleMembershipProvider(MembershipProvider) 생성자 오버로드를 사용하여 암호 요구 사항 속성이 설정된 MembershipProvider의 인스턴스를 제공하면 SimpleMembershipProvider에서 해당 값을 사용합니다.

해싱에 대해서는 PBKDF2을 사용하고 있습니다. 즉, 걱정할 필요가 없습니다.