C# 中的 AD 控制台项目(VS 2008)





2.00/5 (1投票)
在 ASP.NET 和 IIS 中实现 Active Directory 查询可能非常棘手,尤其是在您刚开始使用 ASP.NET、IIS 和
在 ASP.NET 和 IIS 中实现 Active Directory 查询可能非常棘手,尤其是在您刚开始使用 ASP.NET、IIS 和 DirectoryServices 命名空间时。通常,先在控制台应用程序中实现基本的查询工作,然后再将可用的代码移动到 ASP.NET 应用程序中,这样会更有帮助,一旦它完成了您需要的功能。
如何在 VS 2008 中设置 C# 控制台项目以访问 Active Directory
- 打开 Microsoft® Visual Studio® 2008。
- 从“文件”菜单中,选择“新建”,然后选择“项目”。
- 几秒钟后,将出现“新建项目”窗口。
- 在左侧的“项目类型”窗格中,展开“Visual C#”,然后选择“Windows”。
- 在右侧的“模板”窗格中,在“Visual Studio 安装的模板”中,选择“控制台应用程序”。
- 在“新建项目”窗口的右上部分(VS 2008 的新功能)有一个下拉菜单,您可以在其中选择项目将要构建的 .NET Framework 版本。对于此演示,我们将使用 .NET Framework 3.5。
- 为项目指定一个名称并选择其位置。我建议勾选“为解决方案创建目录”复选框,因为这使得添加其他项目(如类库和单元测试项目)更容易。
- 点击“确定”。
这完成了项目的基本设置,但我们还没有访问任何 AD/LDAP 类,因为它们位于默认情况下未包含的库中。在 .NET 3.5 中,有三个库:System.DirectoryServices(ADSI 对象的包装器)、System.DirectoryServices.Protocols(它使用 Windows LDAP 库 (wldap32.dll))和 System.DirectoryServices.AccountManagement(再次使用 ADSI,但侧重于帐户管理)。对于此演示,我们仅使用 System.DirectoryServices。
如何将库添加到您的项目
- 在 Visual Studio 中,打开“解决方案资源管理器”(从“视图”菜单中,选择“解决方案资源管理器”)。
- 在“解决方案资源管理器”中,选择项目(而不是解决方案)或项目的其中一个文件。这将为“项目”菜单添加额外的项目。
- 从“项目”菜单中,选择“添加引用”。
- 几秒钟后,将出现“添加引用”窗口。
- 在“.NET”选项卡中,向下滚动到 System.DirectoryServices,选中它,然后单击“确定”。(此时,您可以选择多个库,但我们只需要这个库)。
这使库可用于项目中的类。与 VB 不同,没有办法自动将命名空间导入到每个代码文件。
如何导入命名空间
此时,System.DirectoryServices 中的所有类都可在您的代码文件中使用。但是,您必须使用完整的命名空间名称,例如 System.DirectoryServices.DirectorySearcher。为了能够仅通过类名引用一个类,请通过在每个代码文件的顶部添加以下命令来导入命名空间
using System.DirectoryServices;
要测试项目,请将以下代码添加到
string defaultNamingContext;
using (DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"))
{
defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString();
}
Console.WriteLine("Accessing domain: {0}", defaultNamingContext);
Console.WriteLine("\r\nPress a key to continue...");
Console.ReadKey(true);
并按 F5 进行编译和运行。就是这样。
祝您目录服务编程顺利。