1

我已经创建了asp.net mvc 4互联网应用程序。 如你所知,有授权的标准方法有通过websecurity.login 登录操作的AccountController内WebSecurity.Login,如果用户名和密码是正确的用户成为asp.net mvc 4 websecurity两步登录

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

后登录。 但我想要2步登录。因此,在WebSecurity.Login之后,如果用户名和密码正确,则用户转到其他页面,他/她必须输入特殊代码,并且仅在此之后(如果代码正确)用户登录。 所以我可以做这个问题,通过重写websecurity类,而不创建自定义会员供应商?

回答

2

的System.Web.Security命名空间有一个Membership类,它包含一个ValidateUser方法无需登录用户验证你可以用它来然后重定向到第二步页:

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

请介意Membership将参考在web.config注册的默认成员资格提供,我相信是这样的,你的情况:

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

嗨,我已经检查http://msdn.microsoft.com/en-us /库/ gg547 905(v = VS.99).aspx,Websecurity类中没有方法ValidateUser。 – 2013-05-06 14:46:42

+0

对不起,我的意思是Web.Security命名空间... :)我已经更新了答案。 – Tallmaris 2013-05-06 15:05:55