ASP.NET Webフォームカスタムメンバーシッププロバイダのエラー

私のASP.NET Web Formsアプリケーションでは、実行時にConnectionStringをオーバーライドするために、独自のSQLMembershipProviderクラスを作成しようとしています。しかし、私は構成エラーが発生しています: "タイプ 'ExtendRegv1.MyMembershipProvider'はあいまいです"

App_codeフォルダに次のクラスを作成しました...

私のカスタムメンバーシップクラス

namespace ExtendRegv1
{
    public class MyMembershipProvider :SqlMembershipProvider
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            base.Initialize(name, config);

            string connectionString = "Data Source=BSHEEHAN-PC\\SQLEXPRESS;Initial Catalog=ExReg_Default;Integrated Security=True";

            FieldInfo connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
        connectionStringField.SetValue(this, connectionString);  

        }
    }
}

Web設定:


    
        
              
    

ありがとう、ベン

1
クラスを部分的に public partial class MyMembershipProvider にすることができますか?
追加された 著者 benni_mac_b,
もちろん、問題を抱えている他のコピーも部分的にする必要があります。
追加された 著者 Crab Bucket,

1 答え

私はテストプロジェクトでこれを試してみました。それは私のためにうまくいきます。だから思考のカップル

    クラスをApp_Codeに入れると、ファイルを右クリックしてプロパティでビルドアクションをコンテンツからコンパイルに変更する必要がありました - これはVS 2010にありました。これはあなたの問題ではありません。

  1. おそらく、MyMembershipProviderのコピーを2つ持っています。つまり、ビルドに含まれているDLLにもあります。それは誰かのデモコードでもあります。あなたのapp_codeクラスをコメントアウトし、それが構築されているかどうかを確認します。それは修正されません - あなたに何が間違っているの良い指標を与えるだけです。私はそのクラスをdllに入れたいと思うかもしれませんが、それは私だけです(IMHOなど)

私が言うように - 古典的な開発者が話すこと - 私のビルドで私のために働く(それはほとんどモットーのようです!)

0
追加された
@BenSheehan - 喜んでお手伝いします - 正しい場合は答えとしてマークしてください - 緑のダニ。私はバズと報酬を得て、評判がさらに高くなります。
追加された 著者 Crab Bucket,
それに感謝して、第二の選択肢でした。 Web.configでアセンブリを指定して解決しました。タイプ= "ExtendRegv1.MyMembershipProvider、ExtendRegv1"
追加された 著者 Ben Sheehan,