Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET-将文件写入文件共享_Asp.net - Fatal编程技术网

ASP.NET-将文件写入文件共享

ASP.NET-将文件写入文件共享,asp.net,Asp.net,我正在尝试将文件写入网络共享。我很难让它工作。我在这个论坛上调查了使用什么本地帐户访问共享,并发现了不同的结果: 网络服务(本地帐户) aspnet(本地帐户) 用户网络帐户(设置inpersonation时) 它们的组合取决于应用程序生命周期中的阶段 如果我的文件共享位于单独的服务器上,我如何设置它,以便可以像这样访问它:\servername\share name。我使用的IIS版本6禁用了异常身份验证。正确的语法是: \\serverAddressOrName\share 假设权限正确,

我正在尝试将文件写入网络共享。我很难让它工作。我在这个论坛上调查了使用什么本地帐户访问共享,并发现了不同的结果:

网络服务(本地帐户) aspnet(本地帐户) 用户网络帐户(设置inpersonation时) 它们的组合取决于应用程序生命周期中的阶段

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

正确的语法是:

\\serverAddressOrName\share

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

这是一种定义良好的行为,并且是经过设计的。基本上,您是在使用web应用程序向网络共享写入内容,如果您后退一步,发现您的资源正在向万维网打开一个大洞。如果必须这样做,我会在本地机器路径中创建这些文件,比如“d:\data\workingfolder”。编写一个windows服务,实现监控此位置的filesystemwatcher。不详尽,但这项服务将

  • 在有权访问相关网络共享的域帐户下运行-假设\\securedmachine\finallocation
  • 对文件(以及需要的内容)执行一些验证
  • 将文件从d:\data\workingfolder移植到\\securedmachine\finallocation
  • 我认为这是一个稳健的解决方案(或者说是变通方案,如果你愿意这么说的话),可以保证你的资源的安全,并且在某种程度上(即,windows服务中的业务逻辑和通过UI收集的数据)存在分离

    但是,如果仍然希望asp.net直接访问网络共享,则仍然可以使用模拟来执行此操作。ASP.net在iusr_用户**下运行。这是本地帐户,您不能为此帐户授予网络资源访问权限。解决方案有很好的文档记录

    希望这对你有帮助,祝你好运


    奎师那

    谢谢。web应用程序部署到三台客户端PC上。我喜欢FileSystemWatcher的想法,我可以将其部署到三台客户端PC上。该应用程序基于intranet。根据您提到的安全循环漏洞,您是否仍然认为存在风险?如果是intranet应用程序,那么我提出的安全问题就变成了“噪音”——因为必须有人突破防火墙才能访问您的域资源,如果他们这样做了,他们就不需要使用您的应用程序造成伤害,它们可能造成比应用程序所提供的更大的损害。然而,我相信将网络访问与网络共享分开是一个很好的做法。从你的评论来看,我认为我没有很好地阐述解决方案。您不需要编写3个文件系统监视程序。只要在网络服务器上安装一个就足够了,它将并且可以推送到你提到的3台电脑上“你正在为你的万维网资源打开一个大洞”-前提是a)你允许人们上传任何旧的ASPX页面(也许你正在经营一家托管公司?)或者B)你的整个系统设计糟糕。在设计良好的基础设施中,这真的不应该成为一个问题