2009-07-22 114 views
14

我想配置一個ActiveDirectoryMembershipProvider,但我不斷收到消息「無法建立與服務器的安全連接」。ActiveDirectoryMembershipProvider - 「無法建立安全連接」

我在MSDN網站上看到過我應該將信任級別配置爲無限制地在我的網站上,而且我仍然可以獲得該信息。

這是我的例子:

<connectionStrings> 

    <add name="LocalAD" connectionString="LDAP://example.com/dc=example,dc=com" /> 

</connectionStrings> 


<membership defaultProvider="AspNetActiveDirectoryMembershipProvider"> 

    <providers> 

     <add name="AspNetActiveDirectoryMembershipProvider" 
      type="System.Web.Security.ActiveDirectoryMembershipProvider" 
      applicationName="adtest" 
      connectionUsername="cn=Users" 
      connectionPassword="password" 
      connectionStringName="LocalAD" > 

     </add> 
    </providers> 
</membership> 

<trust level="Full" /> 

<authentication mode="Forms"> 
     <forms loginUrl="login.aspx" 
      protection="All" 
      timeout="30" 
      name="miBenefitsAdminToolCookie" 
      path="/" 
      requireSSL="false" 
      slidingExpiration="true" 
      defaultUrl="Default.aspx" 
      cookieless="UseCookies" 
      enableCrossAppRedirects="false" /> 

</authentication> 

<authorization> 
     <deny users="?" /> 
     <allow users="*" /> 
</authorization> 

回答

5

你提供什麼看起來像一個容器,而不是實際的用戶名進行到AD的連接使用。用足夠的憑據提供用戶的規範名稱以訪問AD。請注意,如果服務器位於同一個域中,則工作進程所運行的網絡系統用戶可能已具有足夠的權限,您根本不需要提供名稱/密碼。

<add name="AspNetActiveDirectoryMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider" 
     applicationName="adtest" 
     connectionUsername="cn=actualUser" 
     connectionPassword="actualUsersPassword" 
     connectionStringName="LocalAD"> 

    </add> 
+0

謝謝。這讓我向前邁了一步。 現在我得到了另一個錯誤「提供的憑據無效」。 只有當我在「表單」中允許驗證模式時纔會發生這種情況。 如果我將其更改爲「Windows」,則會自動進行身份驗證。 – Pablo 2009-07-22 13:15:08

1

連接用戶名可以有不同的格式,具體取決於它的配置方式。如果用戶僅作爲DN(專有名稱)添加到用戶角色,則可以使用CN = username,DC =容器的格式

如果將用戶作爲Windows用戶添加到用戶角色,則用戶名只能是用戶名。

我希望這個澄清有所幫助。