Я в ситуации, когда мне нужно, чтобы мой SQLMembershipProvider рассматривал две разные базы данных. Я могу установить строку подключения поставщика программно в первом экземпляре, но не могу изменить его для последующего использования.Использование ASP.Net SqlMembershipProvider с несколькими базами данных
Кто-нибудь знает, возможно ли это, и если да, то как?
Спасибо!
public class CustomSqlMembershipProvider : SqlMembershipProvider
{
public static string connectionString { get; set; }
public override void Initialize(string name, NameValueCollection config)
{
DatabaseConfig _config = DatabaseConfig.GetInstance();
if (String.IsNullOrEmpty(connectionString))
connectionString = _config.BuildConnectionString(DatabaseConfig.enumConnectionString.MyRedsourceDev);
config["connectionString"] = connectionString;
base.Initialize(name, config);
//Also tried this but it doesn't work
// Set private property of Membership provider.
//FieldInfo connectionStringField = GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic);
//connectionStringField.SetValue(this, connectionString);
}
}
Я не могу помочь, но думаю, что проблема в том, что метод Initialize вызывается только оновлено при входе пользователя в систему. Насколько я могу видеть, строка соединения не может измениться после этой точки , даже если я установил свойство connectionString.
Я заметил, что существует частное поле под названием «_Initialzed», которое я пытался установить в false, используя тот же самый код отражения выше, в надежде заставить провайдера повторно инициализировать каждый раз, но безрезультатно
Можете ли вы показать код .. – Sasidharan