Asp.net mvc MVC2 Active Directory身份验证
我正在尝试将Active Directory身份验证添加到多年前构建的帮助台系统中。我们将逐步升级整个系统。我首先创建一个MVC2应用程序来承载登录,然后我的计划是在添加新功能的同时将当前功能引入MVC 但是登录是整个过程的基础。我们需要审计,所以我们需要知道谁在系统中 我读过一些文章,其他的stackoverflow帖子,并跟随几位微软的穿行来写这封信。我能够让它作为一个ASP网站工作,但当它是一个MVC应用程序时,我似乎无法得到它。ASP应用程序需要添加大量的方法,我读到的所有内容都让MVC听起来应该简单得多 以下是我的IIS设置和我对web.config所做的修改: IIS身份验证Asp.net mvc MVC2 Active Directory身份验证,asp.net-mvc,security,active-directory,Asp.net Mvc,Security,Active Directory,我正在尝试将Active Directory身份验证添加到多年前构建的帮助台系统中。我们将逐步升级整个系统。我首先创建一个MVC2应用程序来承载登录,然后我的计划是在添加新功能的同时将当前功能引入MVC 但是登录是整个过程的基础。我们需要审计,所以我们需要知道谁在系统中 我读过一些文章,其他的stackoverflow帖子,并跟随几位微软的穿行来写这封信。我能够让它作为一个ASP网站工作,但当它是一个MVC应用程序时,我似乎无法得到它。ASP应用程序需要添加大量的方法,我读到的所有内容都让MVC
- 匿名:禁用
- ASP.NET模拟:已禁用
- 表单:已启用
- 窗口:禁用
...
...
HTTP错误401.2-未经授权
由于身份验证标题无效,您无权查看此页面。
最终目标是在主页上验证用户。如果无法对其进行身份验证,请强制登录
编辑:启用匿名身份验证
我启用了匿名身份验证,以查看是否有任何潜在错误可能是问题的根源。我得到了以下错误:
连接字符串中指定的容器不存在。
它正在MyADMembershipProvider
的定义中查找错误
<add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" />
我将连接字符串更改为以下内容:
这确实成功地重定向到登录页面,但它没有自动对我进行身份验证。当我再次将Anonymous
设置为Disabled
时,我又回到了原来的错误
我想我在这里遗漏了一些基本的知识,这些知识不是从我正在阅读的材料中获得的
编辑:身份验证根本不起作用
我认为值得补充的是,身份验证根本不起作用。
MembershipService.ValidateUser
总是返回false。我认为解决方案是身份验证类型。最初,我使用的是以下内容:
IIS身份验证
- 匿名:禁用
- ASP.NET模拟:已禁用
- 表单:已启用
- 窗口:禁用
Web.config
文件中,我使用了Forms
authentication。显然,对于Active Directory身份验证,类型必须是Windows。
原件:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
修订:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
我知道这是有效的,但由于我是MVC新手,我可能仍然会错过一些东西