在 ASP.NET 中验证 Active Directory 用户






2.64/5 (20投票s)
2002 年 4 月 30 日
1分钟阅读

444709
如何使用目录服务在 ASP.NET 中验证 AD 用户
引言
在这篇文章中,我将重点介绍通过 ASP.NET 页面验证 Active Directory 用户,实际上您可以在任何类型的代码(非 ASP.NET)中验证用户。基本原理保持不变,但实现方式将取决于具体需求。首先,您需要在 .cs 文件中包含以下代码,以便自由使用目录服务。
using System.DirectoryServices;
这将允许您在代码中获取可用的命名空间。然后,要连接到 Active Directory 服务器,您需要提供 LDAP 路径,该路径将从网络中找到服务器。现在,这将被封装在 DirectoryEntry
类中。以下代码将尝试使用您提供的用户名和密码连接到服务器。
DirectoryEntry entry = new DirectoryEntry(LDAP://ADservername,
"username","password");
根据用户名和密码,这将为您提供抽象的属性名称和值对集合。您可以稍后过滤这些集合,以查找特定于用户的相关信息。要获取特定信息,您需要 DirectorySercher
对象,它将以名称-值对的形式找到您所需的所有信息。
DirectorySearcher mySearcher = new DirectorySearcher(entry);
SearchResultCollection results;
mySearcher.Filter ("name=value");
results = mySearcher.FindAll();
e.g
mySearcher.Filter ("cn=jignesh");
在这里,我尝试获取名为 jignesh 的用户的信息。因此,对于筛选字符串,它是 cn=jignesh。这特定于 Active Directory;您应该了解有关 Active Directory 的所有 LDAP 信息。现在是时候遍历名称-值对,这非常简单且易于理解。
foreach(SearchResult resEnt in results)
{
ResultPropertyCollection propcoll=resEnt.Properties;
foreach(string key in propcoll.PropertyNames)
{
foreach(object values in propcoll[key])
{
//name and value collection retrival
}
}
}
就这样。通过这种方式,您可以连接到服务器并通过 LDAP 获取所有信息,例如用户名、密码等。您还可以设置参数。