1

我是第一次发帖,希望有人能帮我解决这个问题。

我有一些代码对 LDAP 服务器(我相信它是 Novell eDirectory)进行身份验证,然后检索某些属性。此代码在 Windows 2003、Windows 2008 和 Windows 7 上运行良好,但是当我在 Windows 2012 服务器上运行它(访问相同的 LDAP 存储)时,它会失败并在访问属性值时抛出错误 8000500c。有趣的是,访问一些其他属性(如 cn)工作正常,只是一些属性(如 groupMembership)失败

这是一个代码示例:

string ldapurl = "LDAP://<server>:389/cn=<user id>,ou=<ou value 1>,ou=<ou value 2>,ou=<ou value 3>,o=users";

DirectoryEntry oDirectoryEntry = new DirectoryEntry(ldapurl);
oDirectoryEntry.Username = <user id>;
oDirectoryEntry.Password = <password>;

// I have tried a few different Authentication Types 
oDirectoryEntry.AuthenticationType = AuthenticationTypes.FastBind;

DirectorySearcher oDirectorySearcher = new DirectorySearcher(oDirectoryEntry); 
oDirectorySearcher.PropertiesToLoad.Add("groupMembership");

// This works
SearchResult oSearchResult = oDirectorySearcher.FindOne();

// This is where it throws the error
string sType = oDirectoryEntry.Properties["groupMembership"].Value.ToString();

有谁知道我在这里哪里出错了?同样,它在安装了 .Net 3.5 和 .Net 4.5 SP1 的 Windows 2003、Windows 2008 和 Windows 7 上运行良好。它似乎只是 Windows 2012 的问题。

4

0 回答 0