1

asp.net mvc3 カスタム メンバーシップ プロバイダーをテストしようとしています。どのコードにも足を踏み入れることができないようです-今のところやりたいのは、ユーザーがログインしていることを確認することだけです.

私がこれまでに行ったことは次のとおりです。

抽象的な MembershipProvider クラスを実装します。

public class SSDSMembershipProvider : MembershipProvider
{
        public override bool ValidateUser(string username, string password)
        {
            return true;
        }

新しいプロバイダーを使用するように web.config を変更します。

  <membership defaultProvider="SSDSMembershipProvider">
      <providers>
        <clear/>
        <add name="SSDSMembershipProvider" type="MvcApplication6.Infrastructure.SSDSMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

Authorize 属性を about HomeController に追加しました。

    [Authorize]
    public ActionResult About()
    {
        return View();
    } 

authorize 属性によって、ValidateUser メソッドが呼び出されますか? ValidateUser にブレークポイントを設定すると、そこにはステップインせず、ブラウザはログオン ページに直接移動します。ここで正しいアプローチを取りましたか?

4

2 に答える 2

2

AccountController のコードを変更しましたか?

メソッド「LogOn」のコードを Mebership.ValidateUser から SSDSMembershipProvider-Class の新しいインスタンスに変更してから、ValidateUser メソッドを呼び出す必要があります。

于 2012-07-09T09:16:49.350 に答える
1

Authorizeユーザーをログインページにリダイレクトするだけで、ユーザーが自分の資格情報を入力してログインフォームを送信すると、ユーザーの検証が呼び出されます。

于 2012-07-09T10:11:38.857 に答える