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