Asp.net 获取错误AspNetActiveDirectoryMembershipProvider指定了无效的dn语法

Asp.net 获取错误AspNetActiveDirectoryMembershipProvider指定了无效的dn语法,asp.net,authentication,active-directory,ldap,openldap,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"> <pro

我的配置如下:

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

什么时候出现错误?i、 e.代码的哪一部分?抛出无效的dn语法可能有两个原因:比如连接字符串出现问题,或者检索属性时属性中的逗号等无效字符


顺便说一句:
attributeMapUsername=“uid”
?你确定吗?为什么不
attributeMapUsername=“userPrincipalName”
?或者
attributeMapUsername=“sAMAccountName”

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


另一方面,这个内置api只适用于AD,所以我必须自己编写。

提交登录页面时会发生错误。使用uid是因为它是用户名的对象OpenLDAP日志应该有为请求提交的DN的记录。当服务器拒绝请求时,该DN是什么?我没有服务器的管理员访问权限。我只能用于身份验证。是否可以让LDAP管理员检查日志,并告诉服务器拒绝请求时DN是什么?