Я использую группы AD для своего приложения в интрасети.
<authentication mode="Windows" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
, а затем просто добавил атрибуты авторизации для действий моего контроллера, которые мне нужно было обезопасить:
[Authorize(Roles = MyNamesspace.Constants.MANAGER_GROUP)]
public ActionResult Blah() {...
И вдля просмотра вы можете использовать User.IsInRole
и имя их группы AD / Windows.
Или получить список ролей, которые веб-сервер видит от этого пользователя: System.Web.Security.Roles.GetRolesForUser();
Предупреждение: мой сервери все мои клиенты находятся в одном домене.это не сработает, если вам нужно сделать то же самое для веб-клиентов вне сайта с вашей ActiveDirectory.