5

У меня было приложение, которое подключилось к одной отдельной базе данных.Asp.net переопределяет настройки членства во время выполнения (asp.net mvc)

Теперь приложение должно подключаться к нескольким базам данных. Мы хотим, чтобы с помощью того же приложения/domain/hostname/virtual dir предоставить пользователю возможность на экране входа в систему выбрать «приложение/базу данных», к которому они хотят подключиться.

В каждой базе данных есть таблицы приложений/данные/procs/etc, а также элементы принадлежности/ролей aspnet.

Когда пользователь вводит имя пользователя/пароль и выбирает (выбирает список) приложение, я хочу проверить пользователя на выбранную базу данных приложений.

В настоящее время строка подключения к базе данных для служб членства сохраняется в файле web.config. Есть ли способ переопределить это во время входа в систему? Кроме того, мне нужна функция «запомнить меня», чтобы работать плавно. Как это работает, когда пользователь возвращается в приложение через 5 часов ... Этот процесс должен иметь возможность идентифицировать пользователя и приложение и входить в систему соответствующим образом.

ответ

5

Единственный возможный путь, чтобы изменить строку сопп с помощью отражения:

// Set private property of Membership provider.FieldInfo connectionStringField 
= GetType().BaseType.GetField("_sqlConnectionString", BindingFlags.Instance | BindingFlags.NonPublic); 
     connectionStringField.SetValue(this, connectionString); 

Найдено здесь: http://forums.asp.net/p/997608/2209437.aspx

Почему не просто реализовать свой собственный MembershipProvider? Очень легко сделать, а затем у вас есть полный контроль над тем, что происходит. Я уверен, что вы придумаете другой пользовательский сценарий, по которому поставщик по умолчанию не работает.

AFAIK функция помнить меня должна работать именно так, как вы описываете, пока пользователь не удаляет свои файлы cookie.

0

Ниже приведена ссылка на пример с использованием нескольких строк подключения для ваших поставщиков членства.

ASP.NET Forum - Multiple Providers

Смежные вопросы