これは私の問題です。私は複数の顧客のために1つだけのウェブサイトを持っています。自分のデータにアクセスするには、顧客がこのようなURLを使用します。 http://customer1.mysite.com http://customer2.mysite.com などASP.NET複数の潜在的に不明なSQL Serverインスタンスの1つのWebサイトのメンバシップ
各顧客が自分のデータとのSQLServerのインスタンスを持っています。
URLに応じて、Webサイトは正しいSQL Serverインスタンスに接続します。これはいい。
私の問題はメンバーシップに関するもので、各インスタンスは独自の「メンバーシップデータベース」です。また
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear />
<add name="MyMembershipProvider"
type="MapApp.MyMembershipProvider, MyApp"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Encrypted"
minRequiredPasswordLength="5"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
connectionStringName="A_DATABASE" />
</providers>
</membership>
が、私はこのようなコードでカスタムのMembershipProviderあります:
public class MyMembershipProvider : SqlMembershipProvider
{
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
base.Initialize(name, config);
// Update the private connection string field in the base class.
string connectionString = "my new connection string depdend of the customer"
// Set private property of Membership provider.
FieldInfo connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
connectionStringField.SetValue(this, connectionString);
}
}
のが、「すでにインスタンス化」のようないくつかの問題を持って十分ではありません私のWebConfigで私はこのようなダミーセクションを設定します私は私のカスタムメンバーシッププロバイダーに電話します。
誰かが私を助けることができますか?してください...
この長い記事で私の悪い英語のため申し訳ありません