2

カスタムのSqlMembershipProviderクラスを作成していますが、これに新しいパブリックプロパティを設定して、ユーザーがSqlMembershipProvider基本クラスに既に含まれている他のパブリックプロパティと一緒にweb.configに設定できるようにします。ただし、プロパティを追加してアプリケーションを実行しようとすると、属性が認識されない「DataLocationDescription」を示す死亡エラーの黄色の画面が表示されます。 このプロパティをクラスの他のプロパティとともにweb.configでアクセスできるようにするには、何をする必要がありますか?

これが私のコードです:

public class CustomSqlMembershipProvider : SqlMembershipProvider
{


    public string DataLocationDescription { get; set; }

}

そして、これが私のプロパティDataLocationDescriptionが指定されているweb.configファイルです:

          <add name="CustomizedMembershipProvider" 
           type="ClassLibraries.Web.Security.CustomSqlMembershipProvider" 
           connectionStringName="SQLConnection" 
           maxInvalidPasswordAttempts="5" 
           passwordAttemptWindow="30" DataLocationDescription="Tier2"/>

ConfigurationProperty属性を使用してみましたが、違いはありませんでした。

[ConfigurationProperty("DataLocationDescription", IsRequired = true)]  

どんな助けでも大歓迎です。

ありがとう!ノミ

4

1 に答える 1

1

これはSqlMembershipProvider、構成ファイルのメンバーシップ/プロバイダーセクションを逆シリアル化するものではなく、ConfigurationManagerクラスです。membership要素のスキーマは固定されているため、それについてできることは何もありません。

簡単に言えば、構成システムは追加のプロパティを認識しません。

代わりに、独自の構成セクションを作成し、アプリケーションの最初のどこかでカスタムメンバーシッププロバイダーの初期化後を行うことができます。CustomSqlMembershipProviderしたがって、今のところ1つの要素(または属性、選択)、DataLocationDescription値を持つセクションのようなものがあります。

于 2013-01-01T23:07:06.110 に答える