2010-01-19 84 views
2

我已经设置了ActiveDirectoryMembershipProvider connectionProtection属性,以确保ActiveDirectoryMembershipProvider,根据MSDN文档指出,当此设置为安全以下成立:LDAPS与ASP.Net Web表单

“的ActiveDirectoryMembershipProvider类将尝试连接到使用SSL的活动目录如果SSL失败,第二次尝试使用登录和密封连接到活动目录,如果两次尝试失败,ActiveDirectoryMembershipProvider实例将抛出一个ProviderException异常。

该代码的工作原理和查询可以针对LDAP进行,但有一个问题让我有点困惑,因为我的连接字符串前缀为LDAP而非LDAPS。将其更改为LDAPS将导致以下错误: “解析器错误消息:错误HRESULT E_FAIL已从调用返回到COM组件。”

这里发生了什么?在第一种情况下,连接字符串就是LDAP正在使用的SSL?该文件表明,如果不是,应该抛出异常。如果不是,那么在这种情况下会出现这种错误的可能原因是什么?

回答

2

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

但是,LDAP专有名称的规范实际上没有LDAPS前缀。几年前,我做了大量的LDAP工作,而且我确实记得必须处理不同的端口以获得可信或安全的通信,但我从来没有一个完全合格的LDAP路径除了前缀LDAP://(案例也是敏感的!)。