我的公司内部网上有一个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")
有人有什么想法吗?
答案 0 :(得分:4)
您可以从Roles静态类调用IsUserInRole。这是一个示例和一些参考资料。
Roles.IsUserInRole(username, rolename);
link:http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.isuserinrole.aspx