ASP.NET / VB.NET Проверить, если (другой) пользователь IsInRole - PullRequest
0 голосов
/ 07 июля 2011

У меня есть приложение ASP.NET во внутренней сети нашей компании. И прикольное требование безопасности.

Мне нужно проверить, находится ли данное имя пользователя в определенной роли. Я не могу использовать

Page.User.IsInRole("MyDomain\MyGroup")

потому что

Page.User.Identity.Name

Возвращает пустую строку. Из-за некоторых прекрасных спецификаций для этой программы я должен оставить анонимный доступ включенным в IIS. Кажется, исключить любой материал page.user.identity.

Итак, я нашел способ (по крайней мере) получить текущего пользователя (из System.Environment.UserName), но мне нужно отразить его в отношении группы домена, чтобы увидеть, есть ли в нем. Или, еще лучше, получить список пользователей в данном домене, чтобы я мог проверить себя. Что-то вроде ...

Dim UserName as String

UserName = System.Environment.UserName

If User(UserName).IsInRole("MyDomain\MyGroup") Then
    MyFunction = "Success"
End If

-OR -

Dim GroupUsers as String()

GroupUsers = GetDomainUserNames("MyDomain\MyGroup")

У кого-нибудь есть идеи?

1 Ответ

4 голосов
/ 07 июля 2011

Вы можете вызвать IsUserInRole из статического класса Roles. Вот образец и некоторые справочные материалы.

Roles.IsUserInRole(username, rolename);

ссылка: http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.isuserinrole.aspx

...