我有一个刚刚创建的 Windows 用户帐户,以 XYZ 为例。
此 XYZ 属于我在计算机管理 --> 本地用户和组中创建的用户组和自定义组。
因此,在属性中我看到该用户属于 2 个组。
现在我想获取这些组并显示它们。有什么建议么?
我已经这样做了,但是这是不对的,因为它给了我 SQL 的角色(我认为)
这是我所做的:
登录并模拟后我调用该函数
getUserGroups();
private void getUserGroups()
{
// collect the user domain and identity
string[] arr =
System.Web.HttpContext.Current.Request.
LogonUserIdentity.Name.Split('\\');
// update the display to show
// the captured domain and user
if (arr.Length > 0)
{
new GUIUtility().LogMessageToFile("User Name" + arr[0].ToString());
new GUIUtility().LogMessageToFile("User Domain" + arr[1].ToString());
}
// create an arraylist and populate
// it with the list of groups that
// the current user belongs to
ArrayList al = new ArrayList();
al = GetGroups();
// check to see if the user belongs
// to a specific group and create
// a list of all of the user's groups
foreach (string s in al)
{
// add this one to the list
new GUIUtility().LogMessageToFile("Group" + s);
// check to see if the user
// belongs to a specific group
//if (s == "BXSWLT\\SomeCustomGroup")
//{
// // change the label to show
// // there was a match
// lblMemberOfGroup.Text = "YES";
//}
}
}
public ArrayList GetGroups()
{
ArrayList groups = new ArrayList();
foreach (System.Security.Principal.IdentityReference group in
System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
{
groups.Add(group.Translate(typeof
(System.Security.Principal.NTAccount)).ToString());
}
return groups;
}
我得到的结果是:
9/8/2010 5:57:22 PM: User Name NT AUTHORITY.
9/8/2010 5:57:22 PM: User Domain IUSR.
9/8/2010 5:57:22 PM: Group Everyone.
9/8/2010 5:57:22 PM: Group BUILTIN\Users.
9/8/2010 5:57:22 PM: Group NT AUTHORITY\Authenticated Users.
9/8/2010 5:57:22 PM: Group NT AUTHORITY\This Organization.
9/8/2010 5:57:22 PM: Group LOCAL.
你尝试过吗
HttpContext.Current.User.Identity
代替
HttpContext.Current.Request.LogonUserIdentity
?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)