1

ASP .Net Web サイトを開発しています。
次のように、web.config ファイルでカスタム MembershipProvider を宣言しました。

<membership defaultProvider="MyMembershipProvider">
    <providers>
        <clear/>
        <add name="MyMembershipProvider" type="CompleteSubtitles.Web.Security.MembershipProvider"/>
    </providers>
</membership>

ログイン ASPX ページを作成しました。
検証ボタンのクリック イベント ハンドラーで MembershipProvider.ValidateUser メソッドを呼び出します。
MembershipProvider.Initialize メソッドが ASP .Net によって自動的に実行されないことに気付きました。
正常ですか?

MembershipProvider の構成を読み込むには、MembershipProvider.Initialize メソッドが必要です。

4

1 に答える 1

2

このスレッドで LordHits の回答を読んだ後、解決策が見つかりました:カスタム MembershipProvider で Initialize を呼び出すにはどうすればよいですか?

次のように、私のMembershipProviderをひどくインスタンス化しました:

    CompleteSubtitles.Web.Security.MembershipProvider l_membershipProvider = 
        new CompleteSubtitles.Web.Security.MembershipProvider();

正しい方法は次のとおりです。

    CompleteSubtitles.Web.Security.MembershipProvider l_membershipProvider =
        (CompleteSubtitles.Web.Security.MembershipProvider)Membership.Providers["MyMembershipProvider"];

正しい方法を使用すると、MembershipProvider.Initialize メソッドが実行されます。
したがって、MembershipProvider 構成は web.config ファイルから読み取られます。

于 2013-01-24T10:59:46.970 に答える