使用LDAP连接到Active Directory的连接字符串

时间:2013-03-01 12:25:02

标签: c# asp.net asp.net-mvc active-directory ldap

我的系统管理员给了我这个:

域名:capp.net USER:capp \ dhr2

通过:admin @ 12345

连接字符串是什么?

我对adfs非常新。所以我试过这个:

<add name="ADConnectionString"
      connectionString="LDAP://capp.net/CN=dhr,DC=capp,DC=net"  />

<authentication mode="Forms">
  <forms name=".ADAuthCookie" timeout="43200"/>
</authentication>
<authorization>
</authorization>

<membership>
  <providers>
    <clear/>

    <add name="MyADMembershipProvider"
     type="System.Web.Security.ActiveDirectoryMembershipProvider"
     connectionUsername="cn=dhr2"
     connectionPassword="admin@12345"
    connectionStringName="ADConnectionString"/>

  </providers>
</membership>

我总是收到此错误:无法与服务器建立安全连接

我对连接字符串做错了。我只是不知道如何解决它。

4 个答案:

答案 0 :(得分:5)

每当我从.net访问AD时,我都会完成以下操作:

var directoryEntry = new DirectoryEntry("LDAP://capp.net");
directoryEntry.Username = "capp\dhr2";
directoryEntry.Password = "admin@12345";

然后您可以使用DirectorySearcher查询“AD”。

var directorySearcher = new DirectorySearcher(directoryEntry);

...

答案 1 :(得分:2)

感谢大家的帮助和支持。 我的正确地址是:

LDAP://192.168.0.146/CN=USERS,DC=capp,DC=net

我在开始时没有意识到我正在尝试连接到与当前域不同的域中的Active Directory。所以IP地址是缺失的部分。 感谢上百万的Luis,他们意识到域名存在问题。

感谢Shadow Walker更详细地解释了ldap连接字符串。

答案 2 :(得分:1)

我们发现这最适合确保您拥有正确的参数:

使用LDAP连接到AD的困难部分通常是Determining the FDN of the user to login with. 如果您知道用户的samAccountName,可以使用以下命令找到它:

dsquery user -samid jim
"CN=Jim Willeke,CN=Users,DC=mad,DC=willeke,DC=com"

答案 3 :(得分:1)

对于Active Directory,ldap连接字符串可以采用以下形式:

协定:// domaindnsaddress

其中protocol可以是 ldap:// ldaps:// ,具体取决于是使用标准连接还是SSL连接。在转移到SSL / TLS之前,您应始终使用标准连接进行故障排除,以避免此时出现证书问题。

domaindnsaddress是域名的DNS可解析地址 - 在您的情况下为capp.net。

某些编程语言(如php)不需要ldap://前缀来执行连接操作。您可以尝试在没有它的情况下进行连接。

登录的用户名可以有多种形式。最常见的是:

  • NetBIOS域名\ samaccountname( CAPP \ dhr2 - 请注意反斜杠)
  • userprincipanname( dhr2@capp.net
  • samaccountname @ domaindnsname( dhr2@capp.net

您可以在此处阅读Microsoft有关登录名称可能形式的详细信息:
MSDN - Simple Authentication

密码不需要任何特殊处理 - 只需对您的ldap服务器执行标准绑定操作,您应该进行身份验证 请注意,我故意包括任何示例代码,因为您的问题是关于连接字符串,而不是使用C#库连接到ldap。