1

나는 asp.net mvc 4 인터넷 앱을 만들었습니다. 아시다시피 는 사용자 이름과 암호가있는 경우 WebSecurity.Login는, 올바른 사용자가 기록 될asp.net mvc 4 websecurity two step login

 if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
     { 
      return RedirectToLocal(returnUrl); 
     } 

후이 로그인 액션 AccountController 내부 websecurity.login 을 통해 인증의 표준 방법이있다. 하지만 2 단계 로그인을 원합니다. 따라서 WebSecurity.Login 후에 사용자 이름과 암호가 맞으면 다른 페이지로 이동하여 특수 코드를 입력해야하며이 코드가 올바른 경우에만 사용자가 기록됩니다. 그래서 사용자 정의 멤버십 공급자를 만들지 않고도 websecurity 클래스를 다시 작성하여이 작업을 수행 할 수 있습니까?

답변

2

System.Web.Security 네임 스페이스에 사용자가 로그인하지 않고 검증하는 ValidateUser 방법을 포함하는 Membership 클래스를 가지고 당신은 두 번째 단계 페이지로 리디렉션 다음에 그것을 사용할 수 있습니다.

if (Membership.ValidateUser(model.UserName, model.Password)) 
{ 
    // redirect to step 2... 
} 

에 보관

<membership defaultProvider="simple"> 
    <providers> 
     <clear/> 
     <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/> 
    </providers> 
</membership> 
+0

안녕, 내가 확인했습니다 http://msdn.microsoft.com/en-us을 : Membership 내가이 귀하의 경우처럼 보이는 믿는 web.config에 등록 된 기본 멤버 자격 공급자를 참조 할 것을 마음/library/gg547 905 (v = VS.99) .aspx, Websecurity 클래스에는 ValidateUser 메서드가 없습니다. –

+0

죄송합니다. Web.Security 네임 스페이스를 의미했습니다 ... 답변을 업데이트했습니다. – Tallmaris