我是第一次发布海报,我希望有人可以帮我解决这个问题。
我有一些代码可以对LDAP服务器进行身份验证(我相信它是Novell eDirectory),然后检索某些属性。此代码在Windows 2003,Windows 2008和Windows 7上运行良好,但是当我在Windows 2012服务器上运行它(访问同一个LDAP存储)时,它会失败并在访问Property值时抛出错误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的一个问题。