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是什么?