繁体   English   中英

MVC2 Active Directory身份验证

[英]MVC2 Active Directory Authentication

我试图将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。

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

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的新手,所以我仍然可能会缺少一些东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM