我正在編寫一些針對Active Directory的c#並試圖無休止地讓這個工作無效。下面的代碼工作,並遵循它的代碼不:c#針對通過LDAP的Active Directory
下面的代碼使用「WinNT://」+ Environment.MachineName +「,計算機」進行連接並工作正常。
DirectoryEntry localMachine = new DirectoryEntry
("WinNT://" + Environment.MachineName + ",Computer");
DirectoryEntry admGroup = localMachine.Children.Find
("Administrators", "group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
output.RenderBeginTag("p");
output.Write(member.Name.ToString());
output.RenderBeginTag("p");
}
base.Render(output);
我現在試圖改變行:
"WinNT://" + Environment.MachineName + ",Computer"
到
"LDAP://MyDomainControllerName"
但似乎不管我在的地方值「MyDomainControllerName」它的價值是什麼不會工作。
要獲得'MyDomainControllerName'的值,我右鍵單擊MyComputer,並按照其他地方的建議複製計算機名稱的值,但這不起作用。
當我嘗試使用LDAP:上面這導致以下錯誤// RootDSE的選項:
位於路徑LDAP的Active Directory對象:// RootDSE的不是一個容器
這是您提到的成員方法的問題嗎?
我不完全理解你的問題根據你的代碼示例。您是否試圖使用LDAP來枚舉本地組的成員身份?如果是這樣,那就行不通了。 – barneytron 2009-01-23 03:45:24