当一个ASP.NET应用程序在带有模拟的Windows 2003 Server中的IIS6.0下运行时,哪个用户帐户与决定文件读/写/执行访问权限相关?我有两个场景,我试图了解授予/撤销的访问权限。我认为最相关的用户可能是应用程序池中指定的身份,但这似乎不是全部。

第一个问题涉及通过System.Diagnostics.Process.Start()执行本地批处理文件 - 当AppPool设置为IWAM_WIN2K3WEB用户时我无法执行此操作,但如果将其设置为网络则可以正常工作服务身份。我当然确保IWAM用户对该文件具有执行权限。

第二个涉及写入本地硬盘驱动器上的文件 - 我希望能够通过文件夹属性通过访问控制列表阻止这样做,但即使我设置全部文件夹中的用户为“读取” (根本没有“写入”的用户/组),我们的ASP.NET仍然写出文件没问题。如果它没有写访问权限怎么办?

谷歌搜索变得点点滴滴,但从来不是整个故事。

有帮助吗?

解决方案

  

哪个用户帐户与[..]文件读/写/执行访问相关

通常:始终是运行应用程序/页面的用户帐户。

IWAM帐户非常有限。我不认为它有权启动外部进程。此时文件访问权限无关紧要。

如果用户帐户(在您的情况下为网络服务)拥有一个文件(即已创建它),它可以对该文件执行任何操作,即使未明确允许也是如此。检查谁拥有你的文件。

来自Microsoft的 Process Monitor 是一个很好的追踪工具像这样的微妙之处。

其他提示

更多的搜索显示,IWAM用户没有详细记录,如果我们想为该用户指定权限,我们应该坚持使用NETWORK SERVICE或手动提供的身份。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top