4

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

域:capp.net 用户: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

4 回答 4

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);

...

于 2013-03-01T13:07:31.823 回答
2

感谢大家的帮助和支持。在我的情况下,正确的地址是:

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

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

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

于 2013-03-04T09:13:07.527 回答
1

我们发现这样做最能确保您拥有正确的参数:

使用 LDAP 连接到 AD 的困难部分通常是确定要登录的用户的 FDN。 如果您知道用户的 samAccountName,您可以使用以下方法找到它:

dsquery user -samid jim
"CN=Jim Willeke,CN=Users,DC=mad,DC=willeke,DC=com"
于 2013-03-02T13:46:32.917 回答
1

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

协议://域DNS地址

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

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

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

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

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

您可以在此处阅读 Microsoft 关于您的登录名可能形式的大量信息:
MSDN - 简单身份验证

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

于 2013-03-04T00:04:36.473 回答