MVC2 Active Directory身份验证

时间:2013-09-03 19:28:00

标签: asp.net-mvc security active-directory

我正在尝试将Active Directory身份验证添加到多年前构建的帮助台系统中。渐渐地,我们将升级整个系统。我首先创建一个将承载登录的MVC2应用程序,然后我的计划是将当前功能引入MVC,因为我们还添加了新功能。

但登录是整个事情的基础。我们需要审计,因此我们需要知道系统中的人员。

我已阅读文章,其他stackoverflow帖子,并在信中跟踪了几个MS演练。我能够让它作为一个ASP网站工作,但当它是一个MVC应用程序时,我似乎无法得到它。 ASP应用程序需要添加广泛的方法,我读到的所有内容都使得听起来像MVC应该更简单。

以下是我的IIS设置以及我对web.config所做的修改:

IIS身份验证

  • 匿名:已禁用
  • ASP.NET模拟:已禁用
  • 表格:已启用
  • Windows:已禁用

    ... ...           

我一直收到以下错误:

HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers.

最终目标是在主页上验证用户身份。如果无法进行身份验证,请强制登录。

编辑:启用匿名身份验证

我启用了匿名身份验证,以查看是否有任何潜在错误可能是问题的根源。我收到以下错误:

The container specified in the connection string does not exist.

它在MyADMembershipProvider的定义中找到错误。

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

我将连接字符串更改为以下内容:

<add name="ADConnectionString" connectionString="LDAP://server.domain.com"/>

成功重定向到登录页面,但它没有自动验证我。当我再次将Anonymous设置为Disabled时,我又回到了原来的错误。

我认为我在这里缺少一些必要的知识,我不会从我正在阅读的资料中获得。

编辑:身份验证根本无法正常工作

我认为可能值得补充的是,身份验证根本不起作用。MembershipService.ValidateUser总是返回false。

1 个答案:

答案 0 :(得分:0)

我认为解决方案属于身份验证类型。最初,我使用以下内容:

IIS身份验证

  • 匿名:已禁用
  • ASP.NET模拟:已禁用
  • 表格:已启用
  • Windows:已禁用

在我的Web.config文件中,我使用的是Forms身份验证。显然,对于Active Directory身份验证,类型必须为Windows.

原件:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

修:

<authentication mode="Windows" />

<authorization>
  <deny users="?" />
</authorization>

我知道这很有效,但由于我是MVC的新手,我仍然可能会遗漏一些东西。