Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
从active directory(C#中的System.DirectoryServices.AccountManagement)检索组下的用户列表时出错_C#_.net_Authentication_Active Directory - Fatal编程技术网

从active directory(C#中的System.DirectoryServices.AccountManagement)检索组下的用户列表时出错

从active directory(C#中的System.DirectoryServices.AccountManagement)检索组下的用户列表时出错,c#,.net,authentication,active-directory,C#,.net,Authentication,Active Directory,从active directory检索组下的用户时出错。错误描述为 {“无法检索有关域的信息(1355)”}。尝试使用.NET4.0和.NET4.5。 我收到错误的那一行将被错误消息注释 public List<DirectoryUser> GetUsersUnderGroup(string groupName) { var directoryUserList = new List<DirectoryUser>(); string

从active directory检索组下的用户时出错。错误描述为 {“无法检索有关域的信息(1355)”}。尝试使用.NET4.0和.NET4.5。 我收到错误的那一行将被错误消息注释

public List<DirectoryUser> GetUsersUnderGroup(string groupName)
    {
        var directoryUserList = new List<DirectoryUser>();
        string directoryServerIp="192.168.1.xxx";
        string ouName="xxxOuName";
        string domainComponents="DC=xxxComopnent1,DC=xxxComponent2";
        string directoryAdminUserId="directoryAdminuser";
        string directoryAdminPassword="directoryAdminPassword";
        using (var principalContext = principalContext = new PrincipalContext(ContextType.Domain, directoryServerIp, string.Format("OU={0},{1}", ouName, domainComponents), directoryAdminUserId, directoryAdminPassword);)
        {
            using (var group = GroupPrincipal.FindByIdentity(principalContext, groupName))
            {
                if (group != null)
                {                       
                    var users = group.GetMembers(true);
                    //Works fine till the above line. variable users is having not null value but
                    //exception while iterating through the loop.Following is the exception
                    //{"Information about the domain could not be retrieved (1355)."}
                    foreach(var user in users)
                    {                            
                        Console.Write(user.DistinguishedName);
                    }
                }
            }
        }
        return directoryUserList;
    }
public List GetUsersUnderGroup(字符串groupName)
{
var directoryUserList=新列表();
字符串directoryServerIp=“192.168.1.xxx”;
字符串ouName=“xxxOuName”;
字符串domainComponents=“DC=xxxComponent1,DC=xxxComponent2”;
字符串directoryAdminUserId=“directoryAdminuser”;
字符串directoryAdminPassword=“directoryAdminPassword”;
使用(var principalContext=principalContext=new principalContext(ContextType.Domain,directoryServerIp,string.Format(“OU={0},{1}”,ouName,domainComponents),directoryAdminUserId,directoryAdminPassword);)
{
使用(var group=GroupPrincipal.FindByIdentity(principalContext,groupName))
{
如果(组!=null)
{                       
var users=group.GetMembers(true);
//在上一行之前工作正常。变量用户没有空值,但
//在循环中迭代时发生异常。以下是异常
//{“无法检索有关域的信息(1355)。”}
foreach(用户中的var用户)
{                            
Console.Write(user.differentiedName);
}
}
}
}
返回directoryUserList;
}

用于创建PrincipalContext的代码在其他场景(如获取组列表和OU等)中运行良好。本文介绍了出现问题的原因和可能的解决方案:。基本上,如果您不是从域控制器所在的机器上运行代码,则必须使用DirectoryEntry类。
这篇文章应该能帮助你理解这个类:

你有没有尝试过在谷歌上搜索“无法检索到关于域名的信息(1355)”?大量点击。尝试了一些技术,如指定ContextOptions,例如ContextOptions.SimpleBind。巴德没有工作。