ASP.NET LDAP Active Directory配置错误:“指定域中不存在默认用户容器”

时间:2013-05-30 09:11:52

标签: asp.net-mvc authentication configuration active-directory ldap

配置

我有一个asp.net Web应用程序,其配置如下:

 
...
<configuration>
  <connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://testdomain.com" />

...

<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
         connectionStringName="ADConnectionString" 
         attributeMapUsername="sAMAccountName" />
  </providers>
</membership>

...

<authentication mode="Forms">
  <forms loginUrl="~/account/Logon" name=".ADAuthCookie" timeout="43200" enableCrossAppRedirects="true"/>
</authentication>
<authorization>
  <deny users="?" />
</authorization>

应用

我是所有这些AD身份验证的新手,所以我不知道这里有什么问题。 长期以来,这些配置运行良好。

它的工作原理如下:

  • 每次用户访问该网站时,都会将用户重定向到登录页面。
  • 用户然后填写AD用户名和密码以登录
  • 然后所有的身份验证和授权等等

问题

现在,每次用户访问该网站时,都会返回错误

  

配置错误

     
    

描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。

         

分析程序错误消息:指定域中不存在默认用户容器。

         

来源错误:

         

[它指向我的MyADMembershipProvider配置]

  

我的问题

  1. 这里有什么问题?
  2. 我找不到有关此错误的更多信息。这个错误是什么?是什么原因造成的?
  3. 我不确定是什么,但也许有一两个硬化。什么样的硬化会导致这个问题?
  4. 即使这似乎有效,我也试图避免在配置中放入connectionUsername和connectionPassword,因为我们没有为此目的指定广告用户。除此之外还有其他解决方案吗?
  5. 更新[2013/06/03]

    在询问并查看dsquery之后,一位同事告诉我设置IIS应用程序池标识。它使用connectionString =“LDAP://testdomain.com”,没有容器字符串,并且在提供程序配置中没有connectionUsername和connectionPassword。

      

    IIS 7(Win Server 2008 R2) - &gt;应用程序池 - &gt;右键单击App Pool - &gt;高级设置 - &gt;展开流程模型 - &gt;将标识设置为特定用户帐户/密码(默认标识为:ApplicationPoolIdentity)

    虽然它没有解决问题,但似乎证明以前的AD身份验证在IIS App Pool使用ApplicationPoolIdentity时不会返回任何错误(找不到默认容器或找不到容器)。然后一些事情发生了变化,现在不起作用。

0 个答案:

没有答案