Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#将当前windows用户与广告组进行比较_C#_Winforms - Fatal编程技术网

c#将当前windows用户与广告组进行比较

c#将当前windows用户与广告组进行比较,c#,winforms,C#,Winforms,我试图抓取当前的windows用户,看看该用户是否属于Active Directory中的某个组。用户名信息会找到“Harper\TSmith”,这看起来不错,但当我到达 UserPrincipal uPrincipal = Psearch.FindOne() as UserPrincipal UPrincipal行为空。不知道为什么。我在底部还有一个验证器类,它作为bool方法来查看它们是否是该特定组的一部分 PrincipalContext principalCtx = new Princ

我试图抓取当前的windows用户,看看该用户是否属于Active Directory中的某个组。用户名信息会找到“Harper\TSmith”,这看起来不错,但当我到达

UserPrincipal uPrincipal = Psearch.FindOne() as UserPrincipal
UPrincipal行为空。不知道为什么。我在底部还有一个验证器类,它作为bool方法来查看它们是否是该特定组的一部分

PrincipalContext principalCtx = new PrincipalContext(ContextType.Domain);
            UserPrincipal findUser = new UserPrincipal(principalCtx);
            //findUser.Name = Environment.UserName;
            findUser.Name = WindowsIdentity.GetCurrent().Name;
            PrincipalSearcher pSearch = new PrincipalSearcher();
            pSearch.QueryFilter = findUser;
            UserPrincipal uPrincipal = pSearch.FindOne() as UserPrincipal;

            Validator validate = new Validator();
            //validate.IsUserInGroup("VisualOne", uPrincipal);

            if (validate.IsUserInGroup("MyGroup", uPrincipal))
            {
                var MemberShipForm = new Membership();
                MemberShipForm.Show();
            }



public bool IsUserInGroup(string groupName, UserPrincipal user)
    {
        PrincipalContext context = new PrincipalContext(ContextType.Domain, "Harper");
        GroupPrincipal group = GroupPrincipal.FindByIdentity(context, "MyGroup");

        if (user.IsMemberOf(group))
        {
            return true;
        }
        return false;
    }

发布与pSearch.FindOne()相关的代码可能是一个不错的策略,因为它规定了uPrincipal等于什么。我没有pSearch.FindOne()的代码。我认为FindOne是PrincipalSearcher类的一个方法,我可以通过设置pSearch.QueryFilter=findUser来调用它?我现在明白了,这是一个愚蠢的错误。让我看看这些方法,如果我看到了什么,我会告诉你的;
PrincipalContext principalCtx = new PrincipalContext(ContextType.Domain);
UserPrincipal uPrincipal = UserPrincipal.Current;

 if (validate.IsUserInGroup("MyGroup", uPrincipal))
            {
                var MemberShipForm = new Membership();
                MemberShipForm.Show();
            }