我的配置如下:
<connectionStrings>
<add name="ADService" connectionString="LDAP://myserver.com:636/ou=people,dc=mysite,dc=com" />
</connectionStrings>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADService"
attributeMapUsername="uid"
attributeMapEmail="mail"
connectionProtection="Secure"
/>
我已经验证了它的工作连接字符串并返回了uid = xxx的对象。但是使用ASP.net我收到了错误
分析器错误消息:指定了无效的dn语法。
我的Ldap服务器支持匿名绑定。我究竟做错了什么 ?我连接的服务器不是AD而是OpenLDAP 3.0。
答案 0 :(得分:0)
你什么时候收到错误?即你的代码的哪一部分?由于以下几个原因,可能会抛出无效的dn语法:例如连接字符串的问题或者在检索时属性中的逗号等无效字符。
顺便说一下:attributeMapUsername="uid"
?你确定吗?为什么不attributeMapUsername="userPrincipalName"
?还是attributeMapUsername="sAMAccountName"
?
答案 1 :(得分:0)
这是一个LDAP配置问题。它需要一个我没有做过的SSL连接。它需要AuthenticationTypes.SecureSocketsLayer |连接选项中的AuthenticationTypes.FastBind。
另一方面,这个内置的api仅适用于AD,因此我必须自己编写。