ASP.NET - 将文件写入fileshare

时间:2012-02-21 19:09:11

标签: asp.net

我正在尝试将文件写入网络共享。我很难让它上班。我在这个论坛上调查了用于访问共享的本地帐户,并找到了不同的结果:

networkservice(本地帐户) aspnet(本地帐户) 用户网络帐户(设置了人员) 这些的组合取决于应用程序生命周期中的阶段

如果我的文件共享位于单独的服务器上,我该如何设置它以便我可以像这样访问它:\ servername \ share name。我使用IIS版本6禁用了匿名身份验证。

2 个答案:

答案 0 :(得分:1)

正确的语法是:

\\serverAddressOrName\share

假设权限是正确的,您应该能够像使用System.IO命名空间的物理路径名一样使用此路径。

答案 1 :(得分:1)

这是一个明确定义的行为,是设计的。基本上,您正在使用Web应用程序写入网络共享,如果您退后一步,看到您正在为您的资源向万维网打开一个大洞。如果这是必需的并且必须这样,我将在本地机器路径中创建这些文件,让我们说“d:\ data \ workingfolder”。编写一个实现filesystemwatcher监控此位置的Windows服务。并非详尽无遗,但这项服务将

  1. 在有权访问相关网络共享的域帐户下运行 - 让我们说\\ securedmachine \ finallocation
  2. 对文件(如果需要,还有内容)执行一些验证
  3. 将文件从d:\ data \ workingfolder移植到\\ securedmachine \ finallocation
  4. 我认为这是一个强大的解决方案(或者如果您愿意,可以解决这个问题),以确保您的资源安全,并且在某种程度上存在关注点分离(即Windows服务中的业务逻辑和通过UI收集数据)< / p>

    但是,如果您仍然希望asp.net直接访问网络共享,那么您仍然可以使用模拟来执行此操作。 ASP.net在iusr_user **下运行。这是本地帐户,您无法为此帐户授予网络资源访问权限。该解决方案已有详细记录http://www.west-wind.com/weblog/posts/2005/Feb/24/Using-programmatic-Impersonation-from-an-ASPNET-Page

    希望这会有所帮助,祝你好运

    克里希纳