【发布时间】:2014-05-01 13:23:42
【问题描述】:
如何获取用户组或用户是否在管理员组?
我正在使用 .NET 框架 3.5 网络应用程序。
我得到的用户名如下:
Dim strUser As String = System.Web.HttpContext.Current.User.Identity.Name.ToUpper
现在,我需要检查这个用户是否在管理员组中?或者,获取用户的所有组。
请分享一些有助于我实现这一目标的东西。
谢谢。
【问题讨论】:
如何获取用户组或用户是否在管理员组?
我正在使用 .NET 框架 3.5 网络应用程序。
我得到的用户名如下:
Dim strUser As String = System.Web.HttpContext.Current.User.Identity.Name.ToUpper
现在,我需要检查这个用户是否在管理员组中?或者,获取用户的所有组。
请分享一些有助于我实现这一目标的东西。
谢谢。
【问题讨论】:
如果你有超过1个管理员,你可以使用以下两种方式来确定他/她是否是管理员或他/她属于哪个组
1> 修改数据库表 向用户登录数据库添加一行以接受整数值,将其命名为您想要的任何内容或将其命名为组 现在,如果用户是管理员组,则将 1 传递给所有管理员 2 传递给员工,并相应地 稍后您要检查他或她属于哪个组,只需检查他或她的组值!
2> 如果要排序的人数较少 将他们的名字放在代码中并使用字符串比较! 尽管我建议您使用第一种方法!这是一个很好的做法!
【讨论】:
var isAdmin =((System.Security.Principal.WindowsPrincipal)this.HttpContext.User).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)
【讨论】:
Unable to cast object of type 'System.Security.Principal.WindowsIdentity' to type 'System.Security.Principal.WindowsPrincipal'.
Dim r As Boolean = CType(HttpContext.Current.User.Identity, System.Security.Principal.WindowsPrincipal).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)
Dim r As Boolean = CType(HttpContext.Current.User, System.Security.Principal.WindowsPrincipal).IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator) 这行得通。谢谢。