我实现了一种基于表单的身份验证,它在ASP MVC 3应用程序中使用AD,遵循我在这里找到的指示ASP.NET MVC-根据Active Directory对用户进行身份验证,但需要输入用户名和密码
当我使用ASP.NET Development Server运行时,我工作得很好,但在输入凭据后无法进入登录页面,并出现以下错误:
配置错误
描述:处理服务此请求所需的配置文件时出错。请查看下面的具体错误详细信息,并适当修改您的配置文件。
分析器错误消息:发生操作错误。
源错误:
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>
如有任何帮助,我们将不胜感激,提前表示感谢。
更新:到目前为止,经过几次调试,我认为错误可能来自Web.xml配置中的System.Web.Security.ActiveDirectoryMembershipProvider
,我添加了System.Web
(在其中找到了该类)作为引用,并制作了一个本地副本,但仍然是zip…:(
确保您传递了一个帐户的有效用户名和密码,该帐户具有足够的权限来查询您的AD:
<add
name="MY_ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider"
connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName"
connectionUsername="YOURDOMAINSomeAccount"
connectionPassword="secret"
/>
如果您不想这样做,则必须将IIS中的应用程序池配置为在具有足够权限查询Active Directory的帐户下运行。默认情况下,您的应用程序在无法访问AD的本地NetworkService帐户下运行。
我将应用程序池的标识从"ApplicationPoolIdentity"更改为"NetworkService",现在一切都很好。