【发布时间】:2014-12-19 13:29:41
【问题描述】:
我有一个在 IIS7 上运行的 asp.net Web 应用程序,它的 AppPool 标识设置为“网络服务”并且托管管道模式 = 经典。
web.config 包含以下安全设置...
<system.web>
<identity impersonate="true"/>
<authentication mode="Windows" />
</system.web>
网络应用从第三方下载数据并在网络应用服务器上创建文件。然后通过此命令将这些文件传输到另一台服务器。
System.IO.File.Move(sourcePathAndFilename, destinationPathAndFileName);
当我以高级用户身份从服务器运行应用程序时,它运行良好。 当我从客户端计算机以任何用户身份运行应用程序时,它会失败。 当我从服务器以低级别授权用户身份运行应用程序时,它会失败。
错误是 HTTP 401 未经授权的访问。
我 100% 确定用户和网络服务对源文件夹和目标文件夹都有足够的权限。因此,似乎 File.Move() 命令正在作为其他东西执行,但是谁/什么?
在不更改 AppPool 设置的情况下,网络应用是否可以通过用户凭据传递给 File.Move() 命令?
【问题讨论】: