IIS 7.5 即使在禁用时也使用模拟

Posted

技术标签:

【中文标题】IIS 7.5 即使在禁用时也使用模拟【英文标题】:IIS 7.5 using impersonation even when disabled 【发布时间】:2012-02-02 15:07:06 【问题描述】:

我正在使用为默认网站启用 Windows 身份验证的 IIS 7.5。我已将其设置为以 IIS AppPool 身份运行,并允许我的 Web 文件夹使用 IIS 应用程序池身份。 但是当用户登录到我的站点并提供网络凭据时,它会冒充用户来访问我的 Web 文件夹而不是使用应用程序池身份,并且用户会收到 401 错误。 我也通过 procmon 验证了这一点。

i also ran appcmd set config /commit:WEBROOT /section:identity /impersonate:false

以确保禁用模拟。我必须将计算机名\用户 ID 添加到具有读取/执行权限的 Web 应用程序文件夹中才能使其正常工作。我在这里错过了什么?

【问题讨论】:

您的应用程序是在集成还是经典管道模式下运行? 您的 web.config 中是否启用了模拟? 【参考方案1】:

我不知道如何通过命令行执行此操作,但这里是通过 GUI 执行的步骤。

打开 IIS 管理器 扩展您的服务器 扩展网站 浏览到您的应用程序并选择它 点击右侧操作中的“基本设置...” 点击连接为...

此窗口允许您更改用户。

请注意,有两种形式的冒充,这就是造成您困惑的原因。应用程序池模拟导致应用程序在用户的上下文中运行。 Connect as 使应用程序池使用用户访问磁盘上的资源,而不是在用户的上下文中实际运行。

另请注意,如果您使用匿名身份验证,则连接为框中的“已验证用户”是身份验证中定义的匿名用户。

【讨论】:

等连接,因为我必须提供自定义用户 ID 或让它冒充登录用户本身?现在它被选为应用程序用户,我认为这将是应用程序池身份。 @NatashaThapa:应用程序用户指的不是应用程序池身份,而是用户。因此,如果您希望访问文件以匹配应用程序池权限,则需要在此处将其指定为身份。

以上是关于IIS 7.5 即使在禁用时也使用模拟的主要内容,如果未能解决你的问题,请参考以下文章

IIS7.5 无法通过 PCI for NTLM 即使它被禁用

IIS Request.UserHostAddress 返回 IPV6 (::1),即使禁用了 IPV6

使用 Powershell 3.0 切换 IIS 7.5 身份验证“匿名身份验证”?

IIS 7.5:应用程序池问题

IIS 7.5 中的 Windows 身份验证失败

密码保护 IIS 7.5 中的 ASP.NET Web 应用程序