【问题标题】:Authenticating user using SAMAccountName使用 SAMAccountName 对用户进行身份验证
【发布时间】:2012-04-23 02:46:59
【问题描述】:

我是新来的,所以请耐心等待我的解释。 我目前的任务是创建这个 AD 门户登录页面,用户必须在其中输入他们的用户 ID 和密码。

但是,当我在网上进行了很多搜索时,我发现无法同时使用 UserID 和 Password 来验证用户身份,因为 SAMAccountName 只需要 UserID。

这里的事情是我必须验证的用户不是我用于 LDAP 连接登录的用户。 LDAP 连接将始终使用相同的管理员 ID 和密码,而我必须验证的用户是不同的用户。

网络上显示的大多数示例都说明 LDAP 用户 ID 和 SAMAccountName 使用相同的用户 ID。但是,这不适用于我的情况。

因此,我想问一下。是否可以使用 SAMAccountName 验证用户的用户 ID 和密码?希望您能够提供代码示例,因为与这里的大多数人相比,我不是经验丰富的程序员。谢谢。

    public SearchResult GetADUser(string UserID, string Password)
    {
         SearchResult results;

         try
         {
               DirectoryEntry de = GetDirectoryObject(CommonConstant.LDAP_CONNECTION_STRING);
               de.Username = CommonConstant.AD_ADMIN_ID;
               de.Password = CommonConstant.AD_ADMIN_Password;

               DirectorySearcher deSearch = new DirectorySearcher();
               deSearch.SearchRoot = de;

               deSearch.Filter = "(&(objectClass=user)(objectCategory=person)(samaccountname=" + UserID + "))";
               deSearch.SearchScope = SearchScope.Subtree;
               results = deSearch.FindOne();
          }
          catch (Exception ex)
          {
               throw new Exception(String.Format("GetADUser() returned {0}, \"{1}\"", ex.StackTrace, ex.Message));
          }

          return results;
    }

【问题讨论】:

    标签: c# login active-directory directoryservices


    【解决方案1】:

    你做了很多假设,其中一些假设根本不正确。

    是的,确实要能够访问 LDAP,您需要用户名和密码。确实,许多示例使用提供的凭据来针对 LDAP 进行身份验证,以便......好吧,针对 LDAP 进行身份验证。

    问题是您不需要执行任何这些操作。你说它是一个“AD 门户”,我认为这意味着它是一个 Web 应用程序。由于您使用的是 C#,我假设您使用的是 asp.net。如果您使用的是 asp.net,那么您可以简单地使用 ASP.NET 成员资格系统来使用针对 AD 的 Windows 身份验证进行身份验证。它或多或少是“内置”的。

    您不需要执行 LDAP 查询。你把问题复杂化了。非常非常简单。

    除非您尝试做一些非常具体的事情,否则对于简单的 AD 登录页面,您确实走错了路。

    【讨论】:

    • 我有相关的问题,虽然我是初学者。 ....如果有子域(childa,abc.com childb.abc.com,childc.abc.com)并且包含相同的samaccountname(123456789)AD将如何进行身份验证?是否会一一检查子域以便对用户进行身份验证?我的应用程序仅使用 samaccountname 作为登录 ID。每个子域中这个 samaccount 的密码是什么不同... ??
    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2021-05-11
    • 1970-01-01
    相关资源
    最近更新 更多