Роли, доступные с проверкой подлинности Windows - PullRequest
12 голосов
/ 28 мая 2009

Я пытаюсь добавить аутентификацию ролей к действию в контроллере в приложении ASP.NET MVC. Код выглядит примерно так:

[Authorize(Roles = "SomeRoleName")]
public ActionResult Index()
{
    bool inRole = User.IsInRole("Admin");

Если я удалю атрибут Authorize и поставлю точку останова на последнюю строку в этом примере кода, есть ли способ, которым я могу проверить объекты и выяснить, какие роли доступны?

например. Я вызываю User.IsInRole («Администратор») в окне «Немедленно», и он дает мне значение true / false. Как я могу получить доступ к коллекции доступных ролей?

Ответы [ 4 ]

16 голосов
/ 29 мая 2009

Если вам не нужно делать это программно, но вы пытаетесь определить правильные группы / роли Windows, которые необходимо указать, вы можете использовать это из командной строки:

C:\> net group /domain  (lists all Roles in the domain)
C:\> net user <username> /domain (lists info, including roles for a user)

В противном случае вам потребуется запросить часть LDAP в Active Directory или использовать что-то в DirectoryServices.

Взгляните на эти сайты, чтобы получить доступ к Active Directory через C #:

7 голосов
/ 16 марта 2016

Добавьте это в ваш web.config в system.web:

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>

Тогда вы можете использовать:

string[] arr = Roles.GetRolesForUser(User.Identity.Name);

или

string[] arr = Roles.GetRolesForUser();

enter image description here

3 голосов
/ 28 мая 2009

Вы можете использовать различные методы класса RoleProvider в System.Web.Security.Roles.Provider.

Подробнее см .: Поставщик ролей

1 голос
/ 29 мая 2009

Полагаю, вы здесь не используете поставщика ролей, а обращаетесь к базовым функциям WindowsPrincipal, где роли сопоставляются с группами пользователей. Во всяком случае, я не думаю, что можно сделать больше, чем перечислить группы окон, доступные на этом компьютере / в этом домене. Не уверен, поможет ли это, но это все, что я могу сказать, не имея представления о том, что вы пытаетесь сделать с указанным списком ролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...