IIS7:像在 IIS6 中一样设置集成 Windows 身份验证

Posted

技术标签:

【中文标题】IIS7:像在 IIS6 中一样设置集成 Windows 身份验证【英文标题】:IIS7: Setup Integrated Windows Authentication like in IIS6 【发布时间】:2010-09-30 23:21:10 【问题描述】:

这适用于不属于 AD 域的 Windows Server 2008 上的 IIS 7。我想用密码保护一个网站,人们必须输入用户名/密码(例如 Windows 帐户)才能查看该网站。然后网站将使用自己的身份验证方法(表单)来处理用户帐户并决定是否显示会员特定页面等。

在 IIS6 中,我们只是禁用了匿名访问并启用了集成的 Windows 身份验证。 IIS7 的行为不同,当我输入 Windows 用户名/密码来查看该站点时,该站点正常运行,但重定向到登录页面。一旦我登录,该网站就会自然而然地运行。我需要能够在不使用网站凭据登录的情况下浏览网站。

我认为在这里启用匿名访问没有意义,因为我希望对网站的访问受到密码保护(当您第一次导航到 url 时弹出用户名/密码对话框)。

感谢任何帮助!

【问题讨论】:

【参考方案1】:

在 Windows 7 机器上启用 IIS7 上的 Windows 身份验证:

转到控制面板

点击程序>>程序和功能

从左侧选择“打开或关闭 Windows 功能”。

扩展互联网信息服务>>万维网服务>>安全

选择 Windows 身份验证并单击确定。

重置 IIS 并立即签入 IIS 以进行 Windows 身份验证。

享受

【讨论】:

我怎样才能让这个工作只使用我的登录名而不需要用户名/密码? 我也必须为我的网站这样做:iis.net/configreference/system.webserver/security/… FWIW/Late googlers:对于 Windows8:在“设置”中搜索“Windows 功能”。然后展开 Internet 信息服务->万维网服务->安全->Windows 身份验证 必须重新启动 IISManager 才能使更改生效。【参考方案2】:

IIS7 集成模式不支持两阶段身份验证。身份验证现在是模块化的,所以不是 IIS 执行身份验证,然后 asp.net 执行身份验证,而是同时发生。

您可以:

    将应用域更改为 IIS6 经典模式... 关注this example (old link) 了解如何使用 IIS7 集成模式伪造两阶段身份验证。 使用Helicon Ape 和mod_auth to provide basic authentication

【讨论】:

嗨,Jim,该链接已失效,您能找到内容的去向吗?也许将其粘贴到您的答案中?谢谢。 “链接”可能在这里:mvolo.com/…【参考方案3】:

为 Windows Server 2008 中的 Windows 身份验证配置 IIS7

查看此链接:

http://www.iis.net/ConfigReference/system.webServer/security/authentication/windowsAuthentication

享受这篇文章:-)

【讨论】:

这对我帮助很大。非常感谢。【参考方案4】:

那么您希望他们获得 IE 密码挑战框,还是应该将他们引导至您的登录页面并在那里输入他们的信息?如果是第二个选项,那么您至少应该启用匿名访问您的登录页面,因为网站还不知道他们是谁。

如果您想要第一个选项,那么他们被转发到的登录页面将需要读取当前登录的用户并据此采取行动,因为他们必须正确地进行身份验证才能做到这一点。

【讨论】:

我希望他们强制弹出对话框访问该站点。但此时他们不会登录到该站点。然后,他们应该能够浏览网站上的页面,并可以选择使用网页登录进行登录。【参考方案5】:

Stack 上其他地方有另一个主题类似的主题,我遇到的最佳解决方案是使用免费版本的Helicon Ape

安装完成后,按照标题为“HTTP 身份验证和授权”页面上的步骤操作

【讨论】:

以上是关于IIS7:像在 IIS6 中一样设置集成 Windows 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

IIS经典模式VS集成模式

检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法

IIS7中的通配符子域。是否有可能使它们像在Apache中一样?

IIS6 和 IIS7 表单身份验证兼容性

IIS集成和经典配置