Asp.net переопределяет настройки членства во время выполнения (asp.net mvc) - PullRequest
5 голосов
/ 13 апреля 2010

У меня было приложение, которое подключилось к одной базе данных.

Приложение теперь должно подключаться к нескольким базам данных. Мы хотим, используя одно и то же приложение / домен / имя хоста / виртуальный каталог, дать пользователю возможность на экране входа в систему выбрать «Приложение / База данных», к которому они хотят подключиться.

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

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

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

Ответы [ 2 ]

5 голосов
/ 13 апреля 2010

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

// 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

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

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

0 голосов
/ 13 апреля 2010

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

Форум ASP.NET - несколько провайдеров

...