2013-07-04 166 views
0

指定我的配置如下:得到错误一个无效的dn语法已与AspNetActiveDirectoryMembershipProvider

<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

OpenLDAP日志应该具有为请求提交的DN的记录。服务器拒绝请求时,该DN是什么? –

+0

我没有管理员访问服务器。我只能用于身份验证。 – maxpaul

+0

是否有可能让LDAP管理员检查日志并告知服务器拒绝请求时的DN?提交登录页面时发生错误 –

回答

0

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

另一方面,这个内置的api只适用于AD,所以我不得不写我自己的。

0

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

btw:attributeMapUsername="uid"?你确定吗?为什么不是attributeMapUsername="userPrincipalName"?或attributeMapUsername="sAMAccountName"

+0

。使用uid是因为这是用户名的对象 – maxpaul