2012-01-03 5 views
2

MVC3プロジェクト用のweb.configファイルで使用するように指定したカスタムメンバーシッププロバイダがあります。MVCカスタムメンバーシッププロバイダ

<system.web> 
<membership defaultProvider="CustomMySQLMembershipProvider"> 
    <providers> 
    <clear /> 
    <add 
     connectionStringName="dbConn" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="true" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="25" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/jp2012" 
     name="CustomMySQLMembershipProvider" 
     type="NameSpace.CustomMySqlMembershipProvider" /> 
    </providers> 
</membership> 
</system.web> 

は、私はそれがデフォルトのメンバーシッププロバイダーをオーバーライドするために取得するために私のコードで何かをしなければなりません:私はそれは私がそうのように、その使用を指定していますので、メンバーシッププロバイダーに建てられたの代わりに使用されることを想定し?今、私はこのようにそれにアクセスすることができます

CustomMySqlMembershipProvider membership = 
    (CustomMySqlMembershipProvider)Membership.Providers["CustomMySQLMembershipProvider"]; 

は、私は私の実装名をハードコーディングする必要はありませんので、私はそれが自動的にweb.configファイルを使用して上書きされるように得ることができる方法はありますか?これ以上のもの:

MembershipProvider membership = new MembershipProvider(); 

アイデアはありますか?より多くの情報が必要な場合はお知らせください。

答えて

2

問題は実際にメンバーシップをどのように宣言したかにあります。ライン

type="NameSpace.CustomMySqlMembershipProvider" 

は私のカスタムメンバシッププロバイダが定義されたアセンブリを指定しませんでした。私は右の私のプロジェクト、選択したプロパティをクリックし、フィールドからアセンブリ名がAssembly nameをマークしました。

私のアセンブリ名がANameだったのであれば、この行が

type="NameSpace.CustomMySqlMembershipProvider, AName" 

されている必要がありますが私を助けしようとするためにあなたに@Erangaをありがとうございます。

2

メンバーシッププロバイダーは、お客様のケースではデフォルトのプロバイダーです。プロバイダーに追加の機能を持たない限り、プロバイダーを明示的にキャストする必要はありません。

たとえば、Membership.GetUser()に電話すると、メンバーシッププロバーのGetUser(...)メソッドが呼び出されます。

+0

どのようにしてInitializeメソッドを呼び出すことができますか?実装されたメソッド全体で使用される変数を初期化するコードがあります。 – JesseBuesking

+0

@JesseBuesking初期化を行うには、 'Initialize(string name、NameValueCollection config)'をオーバーライドする必要があります。 – Eranga

+0

私は 'public override void Initialize(String name、NameValueCollection config)'を実装しましたが、現在デフォルトでは呼び出されていません。何か案は? – JesseBuesking

関連する問題