2009-07-28 11 views
13

LINQ to SQLを使用してカスタムメンバシッププロバイダを実装しました。メンバーシッププロバイダーをasp.net mvc WebサイトのWeb設定に追加すると、ログオンページが機能しなくなりました。ASP.NET MVCカスタムメンバシッププロバイダWeb.configエラー

私のWeb.configセットアップ:

<membership> 
    <providers> 
    <clear/> 
    <add 
     name="MyMembershipProvider" 
     type="MyMembership.MyMembershipProvider" 
     connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/"/> 
    </providers> 
</membership> 

は私が得るエラーは以下の通りです:

パーサーエラーメッセージ:デフォルトのメンバシッププロバイダが見つかりませんでした。

ソースエラー:

Line 53:   <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
Line 54:  </authentication> 
Line 55:  <membership> 
Line 56:   <providers> 
Line 57:    <clear/> 

私はここから続行する場所にこだわっています。エラーがメインコードから呼び出されたように見えるので、ブレークポイントを設定することはできません。

私は、asp.net mvcのデフォルトプロジェクトに付属している標準メンバーシップコードを使用しています。メンバーシッププロバイダは、Webプロジェクトに含まれている別のアセンブリで実装されています。

ご協力いただければ幸いです。

ありがとうございます!

答えて

26

メンバーシップタグに "Default = MyMembershipProvider"を追加してみてください。デフォルトを指定しないと、ASP標準を使用しようとします。

+3

ようなものだ。すなわち、アセンブリ修飾型の文字列にする必要があると出来た!ありがとうございました! – Lukasz

+3

ASP.Netに設定されたプロバイダのリストが1つだけ設定されている場合( ' 'は他のすべてのプロバイダを削除することになっています)、デフォルトでは設定されていません。驚くばかり。非常にうれしい私はこれを見つけた。 –

3

2つのことを試すことができます。番号1:デバッグです。すべての例外を破り、.NETフレームワークのソースコードを含むデバッグシンボルをダウンロードするだけです。

ナンバー2:あなたの型が別のアセンブリで定義されているので、type内の文字列は、おそらくそれは<会員defaultProvider =「MyMembershipProvider」>私は追加

type="MyMembership.MyMembershipProvider, MyAssemblyName" 
関連する問題