c#DirectoryEntry.Properties与DirectoryEntry.InvokeGet?
我在尝试从active directory检索“AccountExpirationDate”时遇到了一个奇怪的问题 我使用以下代码检索用户: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
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];