6

我按照我在此处找到的说明ASP.NET MVC - Authenticate users against Active Directory,但需要输入用户名和密码,实现了一个基于表单的身份验证,该身份验证在 ASP MVC 3 应用程序中使用 AD

使用 ASP.NET 开发服务器运行时工作正常,但在输入凭据后无法超出登录页面并出现以下错误:

配置错误

说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:发生操作错误。

源错误:

Line 37:     <membership defaultProvider="MY_ADMembershipProvider">
Line 38:       <providers>
Line 39:         <add name="MY_ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" />
Line 40:       </providers>
Line 41:     </membership>

任何帮助将不胜感激,在此先感谢。

更新: 到目前为止,经过几次调试,我认为错误可能来自System.Web.Security.ActiveDirectoryMembershipProviderWeb.xml 配置,我添加了System.Web(在其中找到了该类)作为参考,并且还制作了本地副本,但仍然是压缩... :(

4

2 回答 2

6

确保您传递了一个有效的用户名和密码,该帐户具有足够的权限来查询您的 AD:

<add 
    name="MY_ADMembershipProvider" 
    type="System.Web.Security.ActiveDirectoryMembershipProvider" 
    connectionStringName="ADConnectionString" 
    attributeMapUsername="sAMAccountName" 
    connectionUsername="YOURDOMAIN\SomeAccount"
    connectionPassword="secret"
/>

如果您不想这样做,则必须在 IIS 中配置应用程序池以在具有足够权限来查询 Active Directory 的帐户下运行。默认情况下,您的应用程序在无法访问 AD 的本地 NetworkService 帐户下运行。

于 2013-02-19T09:54:36.513 回答
6

我将应用程序池的标识从“ApplicationPoolIdentity”更改为“NetworkService”,现在一切正常。

于 2013-12-24T15:49:40.610 回答