1

我创建了 asp.net mvc 4 互联网应用程序。如您所知,通过登录操作 AccountController 中的 websecurity.login 有标准的授权方法

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

在 WebSecurity.Login 之后,如果用户名和密码正确,用户就会被登录。但我想要两步登录。因此,在 WebSecurity.Login 之后,如果用户名和密码正确,用户会转到另一个页面,他/她必须输入特殊代码,并且只有在此(如果代码正确)之后,用户才会登录。所以问题是我可以通过重写网络安全类来做到这一点,而无需创建自定义会员提供程序吗?

4

1 回答 1

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>
于 2013-05-06T14:16:35.120 回答