【问题标题】:Impersonation not working on HTTP Handler on IIS7模拟在 IIS7 上的 HTTP 处理程序上不起作用
【发布时间】:2011-12-18 18:31:12
【问题描述】:

我有一个将文件保存在远程位置的 http 处理程序。为此,我需要特定权限,并且将整个应用程序配置为使用模拟(web.config 设置)

这适用于所有页面(其他一些页面也需要相同的特定权限),但模拟不适用于 http 处理程序,它根本无法模拟。

这在 IIS6 上完美运行,但在 IIS7 上却不行。应用池模式很经典

【问题讨论】:

  • @Marco Miltenburg:设计是什么?在发布此问题之前,我已经阅读了该博客,它只说模拟不适用于 http 处理程序,但他没有说明原因。我想知道原因,所以也许我可以用配置来修复,而不必添加代码。谢谢!
  • 对不起,我对它的设计评论可能为时过早。我错过了您说您的应用程序池处于经典模式的部分。尽管在 IIS 7 中,关于授权、模拟和线程身份,很多方面都发生了变化。尽管在经典模式下 IIS 的行为应该与 IIS 6 相同,但如果存在细微差别,我不会感到惊讶。我无法找到有关差异的任何详细信息,但我在“Professional ASP.NET 3.5 Security, Membership, and Role Management with C# and VB”一书中找到了一个相当复杂的表格,说明它如何在 IIS 7 集成模式下工作。影响它的因素很多。

标签: asp.net iis-7 impersonation


【解决方案1】:

为什么要模拟文件 io 权限,这就是应用程序池身份的用途?将处理程序的应用程序池的身份设置为有权执行 IO 的用户。

Specify an Identity for an Application Pool (IIS 7)

Configuring Application Pool Identity with IIS 6.0 (IIS 6.0)

【讨论】:

  • 感谢您的回答。由于与此问题无关的不同原因,我必须冒充这个问题,因此更改应用程序池用户不是一种选择。
猜你喜欢
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2013-09-14
  • 1970-01-01
相关资源
最近更新 更多