выяснить, к какой группе принадлежит пользователь - PullRequest
1 голос
/ 09 сентября 2010

У меня есть учетные записи пользователей Windows, которые я только что создал, например, XYZ.

Этот XYZ принадлежит группе пользователей и пользовательской группе, которую я создал в разделе «Управление компьютером» -> «Локальные пользователи и группы».

Итак, в свойствах я вижу, что пользователь принадлежит к двум группам.

Теперь я хочу получить эти группы и отобразить их.Любые предложения?

Я сделал это, но это не правильно, поскольку он дает мне роли 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.

1 Ответ

1 голос
/ 09 сентября 2010

Вы пробовали с

HttpContext.Current.User.Identity

вместо

HttpContext.Current.Request.LogonUserIdentity

?

...