Web服务器上的ASP.NET应用程序访问另一台服务器上的共享文件夹的权限

我们有一个Web服务器(IIS with ASP.NET),它已经部署了一个Web应用程序。 Web应用程序的用户可以使用它来上传文件。 Web应用程序需要使用Windows共享将文件保存到另一台服务器。 病毒扫描引擎然后访问Windows共享来扫描上传的文件中的病毒。 Windows共享位于病毒扫描机器上。

问题:Web服务器和病毒扫描器都不在同一个域中。 事实上,他们根本不属于任何领域。 因此,设置共享非常困难,以便Web服务器可以写入共享。

在Web服务器和病毒扫描机上的共享之间build立信任关系的最佳方式是什么,以便Web服务器可以在病毒扫描机上写入共享?

(PS Web应用程序正在运行NETWORK SERVICE – 这也可能会改变。)

这是你可以做到的一个方法:

  • 在Web服务器上创build一个帐户,以使Web服务运行为。
  • 在病毒扫描机上使用相同的用户名和密码创build一个帐户。
  • 在共享文件夹的NTFS权限授予您创build权限写入到该文件夹​​的帐户。
  • 在共享文件夹的共享权限设置“每个人/完全控制”。
  • 请确保您在Web服务器和托pipe共享文件夹的计算机之间有良好的名称parsing。

编辑:

我从来没有使用火花在他的答案中提到的“模仿”function。 我不认为这会做你想要的东西,看看如何没有办法让独立的机器模仿从另一台独立的机器(或从模拟机器不是一个成员)。

如果要将Web服务器计算机的身份validation访问到病毒扫描计算机上,则需要在病毒扫描计算机上拥有对共享和共享所在文件系统具有适当权限的帐户。

在执行写入操作时,应用程序需要使用正确的凭据连接到共享。

鉴于Web服务器无法使用病毒扫描计算机的凭证运行IIS进程,您可能需要修改应用程序以支持您所描述的经过身份validation的访问。 尽pipe对于.NET应用程序来说,我会推荐使用普通旧SMB以外的东西,因为明确指定凭据的API支持有点缺乏。 FTP或SSH可能是一个很好的select。

或者,根据您的安全要求,您也许只能匿名访问病毒扫描共享,并让Web服务器与其进行未经身份validation的谈话。 您可以使用防火墙规则或其他机制来限制匿名访问的风险。