Поставщик ролей ASP.NET Active Directory через web.config - PullRequest
9 голосов
/ 04 ноября 2011

Я хотел бы спросить, может ли кто-нибудь предоставить пример web.config для следующей ситуации:

У меня есть сеть (ASP.NET) с аутентификацией форм (элементами управления входом в систему), которую я хотел бы подключить к нашей корпоративной Active Directory. В AD мы определили пользователей, а также группы. Аутентификация для пользователей (разрешить пользователям ...) работает как чудо, однако, когда я хочу добавить аутентификацию ролей (разрешить роли ...), она не работает. Я пытался включить диспетчер ролей, но точно не знаю, как настроить поставщика для связи с AD.

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

Хотя я и прошел через несколько учебных пособий в Интернете, большая часть аутентификации ролей была ориентирована на использование локального сервера SQL или авторизации Windows, но не на AD.

Ответы [ 2 ]

10 голосов
/ 04 ноября 2011

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

<authentication mode="Windows"/>
<authorization>
  <!--<allow roles="AD_GROUP" />-->
  <!--<allow users="USERS"/-->
  <deny users="?"/> <!-- Important if you want to force authentication-->
</authorization>

где-то в вашем коде вы можете проверить, чтобы увидеть, что пользователь в такой роли:

HttpContext.Current.User.IsInRole("AD_GROUP_NAME")
8 голосов
/ 04 ноября 2011

Идея состоит в том, чтобы написать пользовательский поставщик ролей, который читает группы из AD и выставляет в качестве пользовательских ролей:

http://slalomdev.blogspot.com/2008/08/active-directory-role-provider.html

...