ASP.NET / VB.NET检查是否有(不同的)用户IsInRole

时间:2011-07-06 23:55:41

标签: asp.net vb.net security iis active-directory-group

我的公司内部网上有一个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 个答案:

答案 0 :(得分:4)

您可以从Roles静态类调用IsUserInRole。这是一个示例和一些参考资料。

Roles.IsUserInRole(username, rolename);

link:http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.isuserinrole.aspx