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 の後、ユーザー名とパスワードが正しい場合、ユーザーはログに記録されます。しかし、私は2段階のログインが必要です。したがって、WebSecurity.Login の後、ユーザー名とパスワードが正しい場合、ユーザーは別のページに移動し、そこで特別なコードを入力する必要があり、この後 (コードが正しい場合) にのみユーザーがログインします。カスタムメンバーシッププロバイダーを作成せずに、websecurityクラスを書き直すことで、これを行うことができますか?

4

1 に答える 1

2

System.Web.Security 名前空間には、ユーザーをログインさせずに検証Membershipするメソッドを含むクラスがあります。これを使用して、2 番目のステップ ページにリダイレクトできます。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 に答える