IIS Web 服务器创建新文件:所有权?

IIS Web 服务器创建新文件:所有权?

IIS 配置为集成 Windows 身份验证

web.config配置如下:

<authentication mode="Windows" />
<identity impersonate="true" />

我们在 \webserver1 和 \webserver2 之间进行负载平衡。

Windows 服务器 2003

  1. \\webserverX 创建一个 XML 文件到 \\share1 并且访问被拒绝。

  2. 我们通过允许每个人访问共享来绕过访问拒绝......

  3. 我们希望模拟用户成为所创建文件的所有者。然而,\\webserver1 的计算机帐户才是所有者。

  4. 我们如何确保模拟用户在创建时拥有该文件的所有权?

进展:

  1. 我决定在 \\webserver1 的根目录中本地创建该文件。

  2. 即使 impersonate="true",文件的所有权仍属于 NETWORK SERVICES。

  3. 我无法在 C# 代码中更改文件的所有权。

为什么创建文件时,IIS 不会使用模拟用户的写权限?如果确实如此,我做错了什么?

答案1

好吧,大家,

创建文件时使用的写权限和所有权是 ASP.NET,本地帐户!!!

  1. 用网络 AD 帐户替换该帐户。

  2. 授予该帐户必要的共享权限。

该帐户将成为本地和远程创建的文件的所有者。

据我所知,在流程层面进行模仿是不可能的......

答案2

或者,您可以强制模拟使用固定帐户,即:

<identity impersonate="true" userName="domain\user" password="password" />

这样,您就不需要对 IIS 配置进行任何更改。

答案3

看起来应用程序池的身份用于创建文件(默认情况下是网络服务);尝试更改它并看看会发生什么。

也许这可以帮助你:http://msdn.microsoft.com/en-us/library/ms998351.aspx

相关内容