gpt4 book ai didi

c# DirectoryEntry.Properties 与 DirectoryEntry.InvokeGet?

转载 作者:行者123 更新时间:2023-11-30 17:47:11 26 4
gpt4 key购买 nike

当我尝试从事件目录中检索“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”:

object o1 = user.Properties["accountExpires"].Value; //return a COM object and I cannot retrieve anything from it
object o2 = user.Properties["AccountExpirationDate"].Value; //return null
object o3 = user.InvokeGet("AccountExpirationDate"); //return the DateTime

所以我想知道这里发生了什么?为什么我不能使用 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 的属性以获取值即

      object o1 = result.Properties["AccountExpirationDate"][0];

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

//微软不推荐使用InvokeGet方法。

关于c# DirectoryEntry.Properties 与 DirectoryEntry.InvokeGet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25013472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com