Могу ли я использовать несколько MembershipProviders одновременно? - PullRequest
3 голосов
/ 17 марта 2010

У меня есть несколько провайдеров членства в моем web.config и в моем контроле входа в систему,

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

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 ]

2 голосов
/ 19 марта 2010

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

Сопоставьте это поведение с тем фактом, что все запеченные в сантехнике и контроле ожидают работы с одним провайдером, и вы uscwap .

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

Приветствия

1 голос
/ 17 марта 2010

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

...