Active directory ASP.Net Webforms上具有ActiveDirectoryMembershipProvider的LDAP

Active directory ASP.Net Webforms上具有ActiveDirectoryMembershipProvider的LDAP,active-directory,ldap,activedirectorymembership,Active Directory,Ldap,Activedirectorymembership,我已将ActiveDirectoryMembershipProvider connectionProtection属性设置为安全,根据MSDN文档中的说明,当设置为安全时,会保留以下内容: ActiveDirectoryMembershipProvider类将尝试使用SSL连接到Active Directory。如果SSL失败,将再次尝试使用sign and seal连接到Active Directory。如果两次尝试都失败,ActiveDirectoryMembershipProvider实例

我已将ActiveDirectoryMembershipProvider connectionProtection属性设置为安全,根据MSDN文档中的说明,当设置为安全时,会保留以下内容:

ActiveDirectoryMembershipProvider类将尝试使用SSL连接到Active Directory。如果SSL失败,将再次尝试使用sign and seal连接到Active Directory。如果两次尝试都失败,ActiveDirectoryMembershipProvider实例将抛出ProviderException异常

代码是有效的,可以对LDAP进行查询,但有一个问题让我有点困惑,那就是我的连接字符串的前缀是LDAP,而不是LDAPS。将此更改为LDAPS会导致以下错误: “分析器错误消息:调用COM组件时返回错误HRESULT E_FAIL。”


这里发生了什么?在第一个连接字符串仅为LDAP的实例中,是否使用SSL?文档指出,如果不是,则应引发异常。如果不是,那么在这种情况下,导致此错误的可能原因是什么?

据我所知,所有LDAP DN(可分辨名称)始终只有一个
LDAP
前缀-无论它们是否通过安全链接。安全方面通常通过正在使用的服务器上的端口显示,389是非安全的默认端口,636是安全通信的默认端口


但是LDAP专有名称的规范实际上没有LDAPS前缀。几年前我做了很多LDAP工作,我确实记得必须处理不同的端口以进行可信或安全的通信,但我从未有过完全合格的LDAP路径,除了
LDAP://
前缀(也区分大小写!)。

LDAP://前缀用于清除和SSL连接,要检查通信是否确实在SSL下,请尝试此博客条目的步骤3