1

Microsoft の例に従って、MVC アプリケーションでカスタム MembershipProvider を次のように作成しました。

if (MembershipService == null) { MembershipService = new AccountMembershipService(new FcMembershipProvider()); }

そしてweb.configは次のように構成されています

<membership defaultProvider="FcMembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <clear />

    <add
      name="FcMembershipProvider"
      type="Fc.Web.WebAppMVC.Models.FcMembershipProvider"
      connectionStringName="ApplicationServices"
      enablePasswordRetrieval="true"
      enablePasswordReset="true"
      applicationName="FcWebMVC"
      requiresQuestionAndAnswer="true"
      writeExceptionsToEventLog="false" />

  </providers>
</membership>

問題は、Initialize メソッドが自動的に呼び出されないことです。ヒントはありますか?

どうも

4

2 に答える 2

2

Membership.Provider次のように static を使用してメンバーシップ プロバイダーを取得する必要があると思います。

if (MembershipService == null) { MembershipService = new AccountMembershipService((FcMembershipProvider)Membership.Provider); }

(期待するものによっては必要ないかもしれないキャストをそこに入れますAccoundMembershipService。) このようにして、ASP .NET のメンバーシップ システムがそれを初期化するはずです。

于 2012-06-25T10:44:16.467 に答える
0

「MembershipProvider」クラスを実装するクラスは何ですか? 構成ファイルでは「FcMembershipProvider」であり、コードでは AccountMembershipService であるためです。

カスタム メンバーシップ プロバイダーを作成しました。「MembershipProvider」クラスのみを実装し、行ったように構成を追加しました。コードを追加する必要はないと思います。

于 2012-06-25T10:47:28.530 に答える