0

工作目标和失败目标都是同一域中的机器。代码在下面。当我对域中的某些计算机使用它时,我收到 System.DirectoryServices.AccountManagement.PrincipalOperationException 并显示一条消息:“尝试检索授权组时,发生错误 (1332)。” 该错误由 GetAuthorizationGroups() 引发。

注意:在这两种情况下,我用来连接的用户名都是机器的本地管理员。

    PrincipalContext ctx = new PrincipalContext(ContextType.Machine, machineName, domainname + "\\" + adminusername, pass);
    List<Principal> retList = new List<Principal>();

    using (var user = UserPrincipal.FindByIdentity(ctx, probedusername))
    {
        if (user != null)
        {
            PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
            foreach (Principal group in groups)
            {
                retList.Add(group);
            }
        }
    }
4

1 回答 1

0

我不知道您是否仍然对此有疑问...我遇到了几乎相同的问题,并且我们在很长一段时间内都无法解决。最后,我们从 PrincipalContext 实例中删除了用户名/密码,它可以在所有机器上运行……真的很奇怪,但它让我们很高兴。

如果没有用户名/密码,它会在当前帐户下运行,并且通常所有经过身份验证的用户都可以从同一域(至少在我们的域中)上的远程计算机读取组信息。使用指定的用户名/密码,我们会得到非常奇怪的结果,有时只有域组会返回,有时根本没有组,有时访问被拒绝的消息......无论如何这对我们有用。

于 2010-06-22T14:47:42.647 回答