我有一个我刚刚创建的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.
答案 0 :(得分:1)
你试过
吗?HttpContext.Current.User.Identity
而不是
HttpContext.Current.Request.LogonUserIdentity