0

我的配置如下:

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

4

2 回答 2

0

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

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

于 2013-07-10T15:49:01.127 回答
0

你什么时候得到错误?即你的代码的哪一部分?可能会抛出无效的 dn 语法有几个原因:例如连接字符串有问题或在检索属性时出现无效字符(如逗号)。

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

于 2013-07-04T12:42:41.693 回答