Подтвердить что ты не робот

Использование нескольких поставщиков членства в приложении ASP.Net MVC 3

Я добавляю новую область в существующее приложение mvc 3 razor в качестве области администрирования для управления некоторыми настройками и контентом. Остальная часть сайта в настоящее время обеспечивается заказчиком, который аутентифицирует наших клиентов. Теперь мне нужно аутентифицировать некоторых сотрудников для доступа к области администрирования. Пользовательские данные клиента находятся в совершенно другой базе данных и имеют формат, отличный от того, что мне нужно для наших сотрудников.

Возможно ли это без большого количества головных болей?

4b9b3361

Ответ 1

На самом деле очень мало головной боли.

Просто добавьте все члены MembershipProviders, которые вы хотите в web.config:

<membership defaultProvider="MembershipProvider1">
  <providers>
    <clear/>
    <add name="MembershipProvider1" type="MvcApplication.MembershipProvider1" />
    <add name="MembershipProvider2" type="MvcApplication.MembershipProvider2" />
    <add name="AspNetSqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"      
      connectionStringName="ApplicationServices" />
  </providers>
</membership>

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

Затем я могу переключаться между ними следующим образом:

var membershipProvider1 = Membership.Providers["MembershipProvider1"];
membershipProvider1.ValidateUser("Mike", "banana");

var membershipProvider2 = Membership.Providers["MembershipProvider2"];
membershipProvider2.ValidateUser("Mike", "orange");

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