2010-03-17 4 views
3

У меня есть несколько поставщиков членства в моем web.config и в моем контроле за подключением,Могу ли я использовать несколько MembershipProviders за один раз?

Я собираюсь использовать провайдера на основе выпадающего списка с именем поставщика.

Web.config:

<system.web> 
    <membership> 
     <providers> 
     <remove clear /> 
     <add name="MyOwnProvider1" .... /> 
     <add name="MyOwnProvider2" .... /> 
     </providers> 
    </membership> 
    </system.web> 

В Login.ascx.cs:

Я выбора поставщика на основе выпадающего списка, как так:

MembershipProvider provider = Membership.Providers[dropDownList.SelectedItem.Text]; 

Проблема в том, когда Я попал в эту строку, он всегда пытается подключиться к MyOwnProvider1, когда был выбран MyOwnProvider2!

Любые идеи?

ответ

2

Причина, по которой вы сталкиваетесь, заключается в том, что когда приложение развернуто, поставщик помечен как defaultProvider в элементе членства или первый встреченный поставщик, начиная с вашего web.config и перемещаясь вверх по потоку в корневую сеть .config в каталоге .net framework/config, является , инициализирован, что делает его провайдером членства.

Признайте, что все испеченные в сантехнике и средствах управления ожидаются работать с одним поставщиком, а вы - uscwap.

Чтобы сделать что-то вроде этой работы, вам понадобится реализовать один пользовательский поставщик членства, который действует как фасад или агрегатор для ваших нескольких источников аутентификации и добавляет его как единственный провайдер в web.config.

Приветствия

1

Можно ли динамически выбирать поставщика таким образом? Я всегда предполагал, что нет (хотя я никогда не пробовал), в этом случае я бы предположил, что когда он загружает Membership.Providers, он останавливается при первом входе в MyOwnProvider1 в вашем случае.

+0

Вот футболист: Когда я хочу еще сделать: Membership.Providers, чтобы получить коллекцию поставщиков, это дает ошибку конфигурации сказав, что не удалось установить безопасное соединение! –

+0

Это означает, что он фактически останавливается на первом и пытается подключиться к нему, как вы сказали. –

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