gpt4 book ai didi

c# - 在 ASP.NET 4.0 和 IIS7 中将凭据传递给 File.Move()

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:27 25 4
gpt4 key购买 nike

我有一个在 IIS7 上运行的 asp.net web 应用程序,其 AppPool Identity 设置为“NETWORK SERVICE”,Managed Pipeline Mode = Classic。

web.config 包含以下安全设置...

<system.web>
<identity impersonate="true"/>
<authentication mode="Windows" />
</system.web>

Web 应用程序从第三方下载数据并在 Web 应用程序服务器上创建文件。然后通过此命令将这些文件传输到另一台服务器。

  System.IO.File.Move(sourcePathAndFilename, destinationPathAndFileName);

当我以高级用户身份从服务器运行应用程序时,它工作正常。当我以任何用户身份从客户端计算机运行该应用程序时,它会失败。当我从服务器以低级别授权用户身份运行该应用程序时,它失败了。

错误是 HTTP 401 未授权访问。

我 100% 确定用户和 NETWORK SERVICE 对源文件夹和目标文件夹都拥有足够的权限。所以,似乎 File.Move() 命令正在作为其他东西执行,但是谁/什么?

在不更改 AppPool 设置的情况下,Web 应用程序是否可以通过用户凭据传递给 File.Move() 命令?

最佳答案

您可以在 this 中找到所需内容的出色实现。问题

在使用 using 语句添加特定类后,您可以执行 File.Move

就在

using (new NetworkConnection(@"\\server\path", Credentials)) {
System.IO.File.Move(sourcePathAndFilename, destinationPathAndFileName);
}

关于c# - 在 ASP.NET 4.0 和 IIS7 中将凭据传递给 File.Move(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com