0

我已经使用 AD 建立了一个开发服务器,我正在尝试弄清楚如何通过.NET连接到它。我正在安装 AD 的同一台机器上工作。我从 AD 获得了 DC 名称和机器名称,但连接不起作用。我使用的凭据与连接服务器时使用的凭据相同。

有什么建议么?

DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://[dc.computername.com]", "administrator", "[adminpwd]");
4

2 回答 2

0

尝试这样的事情,使用System.DirectoryServices.Protocols命名空间:

//Define your connection
LdapConnection ldapConnection = new LdapConnection("123.456.789.10:389");

try
{
      //Authenticate the username and password
      using (ldapConnection)
      {
          //Pass in the network creds, and the domain.
          var networkCredential = new NetworkCredential(Username, Password, Domain);
          //Since we're using unsecured port 389, set to false. If using port 636 over SSL, set this to true.
          ldapConnection.SessionOptions.SecureSocketLayer = false;
          ldapConnection.SessionOptions.VerifyServerCertificate += delegate { return true; };
          //To force NTLM\Kerberos use AuthType.Negotiate, for non-TLS and unsecured, use AuthType.Basic
          ldapConnection.AuthType = AuthType.Basic;
          ldapConnection.Bind(networkCredential);
      }
      catch (LdapException ldapException)
      {
          //Authentication failed, exception will dictate why
      }
}
于 2013-09-23T03:49:44.177 回答
0

你能连接到RootDSE容器吗?

DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE", "administrator", "[adminpwd]");

如果可行,那么您可以读出存储在该根容器中的一些属性

if (rootDSE != null)
{
   Console.WriteLine("RootDSE Properties:\n\n");

   foreach (string propName in rootDSE.Properties.PropertyNames)
   {
       Console.WriteLine("{0:-20d}: {1}", propName, rootDSE.Properties[propName][0]);
   }
}

这将向您显示有关安装中存在哪些 LDAP 路径的一些信息。

于 2013-09-23T04:32:13.853 回答