当一个ASP.NET应用程序在带有模拟的Windows 2003 Server中的IIS6.0下运行时,哪个用户帐户与决定文件读/写/执行访问权限相关?我有两个场景,我试图了解授予/撤销的访问权限。我认为最相关的用户可能是应用程序池中指定的身份,但这似乎不是全部。
第一个问题涉及通过System.Diagnostics.Process.Start()执行本地批处理文件 - 当AppPool设置为IWAM_WIN2K3WEB用户时我无法执行此操作,但如果将其设置为网络则可以正常工作服务身份。我当然确保IWAM用户对该文件具有执行权限。
第二个涉及写入本地硬盘驱动器上的文件 - 我希望能够通过文件夹属性通过访问控制列表阻止这样做,但即使我设置全部文件夹中的用户为“读”(没有用户/组有“写”),我们的ASP.NET仍然写出文件没问题。如果它没有写访问权限怎么办?
谷歌搜索变得点点滴滴,但从来不是整个故事。
答案 0 :(得分:1)
哪个用户帐户与[..]文件读/写/执行访问相关
通常:始终是运行应用程序/页面的用户帐户。
IWAM帐户非常有限。我不认为它有权启动外部进程。此时文件访问权限无关紧要。
如果用户帐户(在您的情况下为网络服务)拥有一个文件(即已创建它),它可以对该文件执行任何操作,即使未明确允许也是如此。检查谁拥有你的文件。
来自Microsoft的Process Monitor是一个很好的工具,可以追踪像这样的微妙之处。
答案 1 :(得分:0)
更多的搜索显示,IWAM用户没有详细记录,如果我们想为该用户指定权限,我们应该坚持使用NETWORK SERVICE或手动提供的身份。