0

現在の Windows ユーザーを取得して、そのユーザーが Active Directory の特定のグループに属しているかどうかを確認しようとしています。ユーザー名情報は「Harper\TSmith」を見つけますが、問題ないように見えますが、

UserPrincipal uPrincipal = Psearch.FindOne() as UserPrincipal

行 UPrincipal が null です。理由がわかりません。私はまた、それらがその特定のグループの一部であるかどうかを確認するための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;
    }
4

1 に答える 1

0
PrincipalContext principalCtx = new PrincipalContext(ContextType.Domain);
UserPrincipal uPrincipal = UserPrincipal.Current;

 if (validate.IsUserInGroup("MyGroup", uPrincipal))
            {
                var MemberShipForm = new Membership();
                MemberShipForm.Show();
            }
于 2012-10-24T18:13:43.330 に答える