Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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# Active Directory针对DirectorySearcher和PrincipalSearcher的不同结果_C#_Search_Active Directory - Fatal编程技术网

C# Active Directory针对DirectorySearcher和PrincipalSearcher的不同结果

C# Active Directory针对DirectorySearcher和PrincipalSearcher的不同结果,c#,search,active-directory,C#,Search,Active Directory,我在C#中查询Active Directory时遇到了一个奇怪的问题 但结果并不相同: PrincipalSearcher返回14个组 DirectorySearcher返回12个组 这是虫子还是我错过了什么 谢谢哦,我的天啊,我的扩展方法有错误(i0) { 对于(int i=0;i

我在C#中查询Active Directory时遇到了一个奇怪的问题

但结果并不相同:

  • PrincipalSearcher
    返回14个组
  • DirectorySearcher
    返回12个组
这是虫子还是我错过了什么


谢谢

哦,我的天啊,我的扩展方法有错误(i

公共静态列表GetPropertyValue(此SearchResult SearchResult,字符串属性)
{
var prop=searchResult.Properties[property];
var results=新列表();
if(prop!=null&&prop.Count>0)
{
对于(int i=0;i

很抱歉问了个愚蠢的问题。

那么,你能找出
PrincipalSearcher
另外返回的是哪两组吗??我相信
PrincipalSearcher
也会返回用户的“主要组”——这不是
DirectorySearcher
代码返回的。但第二组是什么——不知道。尝试列出两次搜索的结果,并将结果发布在此处!我最感兴趣的是看到结果!第一组-有趣的想法,第二组是域用户(全局单位)。嗯,这里有没有机会用目录搜索器加载主组?嗯,
域用户
是用户帐户的默认“主组”。
var ctx = new PrincipalContext(ContextType.Domain, "adr", "usr", "pwd");
var entry = new DirectoryEntry("LDAP://" + adr, usr, pwd);

var searcher = new DirectorySearcher(entry) { Filter = "(&(sAMAccountName=user_to_search))", PageSize = 2000 };

foreach (SearchResult searchUser in searcher.FindAll())
{
    // groups
    var groups = searchUser.GetPropertyValues("memberof");
}

var groups = UserPrincipal.FindByIdentity(ctx, "usr_to_search").GetGroups(ctx).ToList();
 public static List<string> GetPropertyValues(this SearchResult searchResult,string property)
        {
            var prop = searchResult.Properties[property];
            var results = new List<string>();


            if (prop != null && prop.Count > 0)
            {
                for (int i = 0; i < prop.Count - 1; i++)
                {
                    results.Add(prop[i].ToString());
                }
            }
            return results;
        }