2013-07-04 56 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