如何使用用户的Windows凭据从共享文件夹下载文件?

时间:2018-09-21 17:43:20

标签: c# asp.net-mvc

我的网络上有一个文件-我们会说它位于以下位置:

  

服务器名称/文件夹1 /文件夹2 / file.xlsx

在我的Web应用程序中,当用户单击链接时,我正在尝试下载此文件。

如果我在本地运行webapp,则可以正常运行。但是,当我从托管服务器上运行它时,它给了我一个错误:

  

System.IO.IOException:登录失败:用户名未知或密码错误。

我目前正在使用以下代码尝试尝试此操作:

byte[] fileBytes = System.IO.File.ReadAllBytes(@"server-name\folder1\folder2\file.xlsx");
return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

如果我使用个人Windows凭据登录到托管服务器,则可以通过文件资源管理器访问此位置,因此我知道两者之间的连接很好。

我已经看到了与模拟相关的解决方案,但是据我了解,这将需要一个中央用户名/密码。我只想利用自己的Windows凭据的方法。

1 个答案:

答案 0 :(得分:0)

托管服务器运行的帐户无权访问该文件,这就是为什么您收到错误消息的原因。

可能的解决方法是:

  • 更改文件安全性,以允许Web服务器运行的帐户访问。

  • 将Web服务器运行的帐户更改为有权访问文件的不同帐户

  • 让您的代码模仿有权访问文件的用户。