针对Active Directory的身份验证。DirectorySearcher的必要性

时间:2018-08-06 08:06:25

标签: authentication active-directory ldap

我有以下代码可以针对Active Directory验证给定的用户名和密码

DirectoryEntry entryInAbsg = new DirectoryEntry("LDAP://....../DC=....,DC=..", username, password,AuthenticationTypes.Secure);
            object nativeObject = entryInAbsg.NativeObject;
            authenticated = true;

这足以验证用户吗?我是否需要使用DirectorySearcher再次搜索用户? 上面的用户名和密码应该是管理员帐户吗?

1 个答案:

答案 0 :(得分:0)

这足以验证用户。但是要执行搜索,您需要创建DirectorySeacher的实例,并将DirectoryEntry对象(entryinAbsg)以及可能需要的任何过滤器传递给构造函数。考虑下面的C#示例;

private DirectorySeacher GetDirectorySeacher(DirectoryEntry entryInAbsg)
{
      DirectorySearcher dirSeach = null;
      if(dirSearch == null)
      {
          try
          {
              dirSearch = new DirectorySeacher(entryInAbsg)
          }
          catch (DirectoryServicesCOMException e)
          {
              MessageBox.Show("Authentification Failed!!!, Please Check.", "Error Info", MessageBoxButtons.OK,MessageBoxIcon.Error);
          }
          return dirSearch;
     }
     else
     {
          return dirSearch;
     }
}

您可以根据自己的特定需求对其进行自定义。