获取错误使用AspNetActiveDirectoryMembershipProvider指定了无效的dn语法

时间:2013-07-04 12:07:50

标签: asp.net authentication active-directory ldap openldap

我的配置如下:

<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。

2 个答案:

答案 0 :(得分:0)

你什么时候收到错误?即你的代码的哪一部分?由于以下几个原因,可能会抛出无效的dn语法:例如连接字符串的问题或者在检索时属性中的逗号等无效字符。

顺便说一下:attributeMapUsername="uid"?你确定吗?为什么不attributeMapUsername="userPrincipalName"?还是attributeMapUsername="sAMAccountName"

答案 1 :(得分:0)

这是一个LDAP配置问题。它需要一个我没有做过的SSL连接。它需要AuthenticationTypes.SecureSocketsLayer |连接选项中的AuthenticationTypes.FastBind。

另一方面,这个内置的api仅适用于AD,因此我必须自己编写。