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