配置
我有一个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身份验证的新手,所以我不知道这里有什么问题。 长期以来,这些配置运行良好。
它的工作原理如下:
问题
现在,每次用户访问该网站时,都会返回错误
配置错误
描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。
分析程序错误消息:指定域中不存在默认用户容器。
来源错误:
[它指向我的MyADMembershipProvider配置]
我的问题
更新[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时不会返回任何错误(找不到默认容器或找不到容器)。然后一些事情发生了变化,现在不起作用。