如何在 C# 中列出可用的ADSI(Active Directory 服务接口)服务提供者?
问问题
545 次
2 回答
1
我发现:
foreach (object obj in (IEnumerable)Marshal.BindToMoniker("ADs:"))
{
obj.GetType().InvokeMember("Name", BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance |
BindingFlags.GetProperty, null, obj, null).Dump();
}
于 2010-08-06T23:36:43.763 回答
0
Microsoft 有一个关于此主题的 KB-233023:如何查找系统上的所有 ADSI 提供程序
另一种变体:
public static IEnumerable<string> GetAdsiProviders()
{
var providers = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\ADs\Providers");
if (null == providers) yield break;
foreach (var name in providers.GetSubKeyNames())
{
yield return name + ":";
}
}
于 2012-05-25T22:49:23.170 回答