如何使用管理员凭据访问LDAP用户

时间:2019-09-08 16:34:30

标签: c# .net ldap

我必须在“我的应用程序”中创建用户,但是在此之前,我需要验证Active Directory中的用户,还需要使用用户名/密码来验证用户的登录名,但是当我运行以下代码时,它表明该服务器不可用。

try {

  LdapConnection connection = new LdapConnection(ConfigurationManager.AppSettings["ADDomain"]);

  Console.WriteLine("Enter LDAP User Name:");
  string LDAPUser = Console.ReadLine();
  Console.WriteLine("Enter LDAP User Password:");
  string LDAPPass = Console.ReadLine();

  NetworkCredential credential = new NetworkCredential(LDAPUser, LDAPPass);
  connection.Credential = credential;
  connection.Bind();
  Console.WriteLine("logged in");
  string c = Console.ReadLine();

} catch (LdapException lexc) {
  String error = lexc.ServerErrorMessage;
  Console.WriteLine(lexc);
  string ads = Console.ReadLine();
} catch (Exception exc) {
  Console.WriteLine(exc);
  string ss = Console.ReadLine();
}
string s = Console.ReadLine();

ConfigurationManager.AppSettings [“ ADDomain”]是ldap路径“ ldap:// IP:389 / ou =服务帐户,DC = DEVDD,DC = ABC,DC =本地?sAMAccountName?sub”

.bind()行上出现错误服务器不可用。

1 个答案:

答案 0 :(得分:0)

documentation for the LdapConnnection constructor说参数应该为:

  

指定服务器的字符串,可以是域名,LDAP服务器名称或代表LDAP服务器IP地址的点划线字符串。 (可选)此参数还可以包括端口号,该端口号与字符串的右端以冒号(:)分隔。

因此它应该是服务器,而不是LDAP路径。您可以将ADDomain更改为服务器IP(或域DNS名称)。端口389是默认端口,因此除非端口不是389,否则无需包括该端口。