65.9K
CodeProject 正在变化。 阅读更多。
Home

在 ASP.NET 中验证 Active Directory 用户

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.64/5 (20投票s)

2002 年 4 月 30 日

1分钟阅读

viewsIcon

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 获取所有信息,例如用户名、密码等。您还可以设置参数。

© . All rights reserved.