Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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#DirectoryEntry.Properties与DirectoryEntry.InvokeGet?_C#_Active Directory - Fatal编程技术网

c#DirectoryEntry.Properties与DirectoryEntry.InvokeGet?

c#DirectoryEntry.Properties与DirectoryEntry.InvokeGet?,c#,active-directory,C#,Active Directory,我在尝试从active directory检索“AccountExpirationDate”时遇到了一个奇怪的问题 我使用以下代码检索用户: DirectoryEntry dirEntry = new DirectoryEntry(Path); DirectorySearcher search = new DirectorySearcher(dirEntry); // specify the search filter searc

我在尝试从active directory检索“AccountExpirationDate”时遇到了一个奇怪的问题

我使用以下代码检索用户:

        DirectoryEntry dirEntry = new DirectoryEntry(Path);
        DirectorySearcher search = new DirectorySearcher(dirEntry);

        // specify the search filter
        search.Filter = "(&(objectClass=user)(mail=" + email + "))";

        // perform the search
        SearchResult result = search.FindOne();
        DirectoryEntry user = result.GetDirectoryEntry();
然后我检索“AccountExpirationDate”:

我想知道这里发生了什么? 为什么我不能使用DirectoryEntry.Properties检索AccountExpirationDate? DirectoryEntry.Properties与DirectoryEntry.InvokeGet之间有什么不同


非常感谢。

您可以告诉directorySearcher要加载哪些属性,如下所示:

      // specify the search filter
      search.Filter = "(&(objectClass=user)(mail=" + email + "))";
      search.PropertiesToLoad.Add("AccountExpirationDate");
      search.PropertiesToLoad.Add("displayname");
执行搜索后,需要遍历SearchResult的属性以获取值 i、 e

Properties-获取此DirectoryEntry对象的Active Directory域服务属性。 DirectoryEntry.InvokeGet-从本机Active Directory域服务对象获取属性

//Microsoft不建议使用InvokeGet方法

      // specify the search filter
      search.Filter = "(&(objectClass=user)(mail=" + email + "))";
      search.PropertiesToLoad.Add("AccountExpirationDate");
      search.PropertiesToLoad.Add("displayname");
      object o1 = result.Properties["AccountExpirationDate"][0];