IIS 配置为集成 Windows 身份验证。
web.config
配置如下:
<authentication mode="Windows" />
<identity impersonate="true" />
我们在 \webserver1 和 \webserver2 之间进行负载平衡。
Windows 服务器 2003
\\webserverX 创建一个 XML 文件到 \\share1 并且访问被拒绝。
我们通过允许每个人访问共享来绕过访问拒绝......
我们希望模拟用户成为所创建文件的所有者。然而,\\webserver1 的计算机帐户才是所有者。
我们如何确保模拟用户在创建时拥有该文件的所有权?
进展:
我决定在 \\webserver1 的根目录中本地创建该文件。
即使 impersonate="true",文件的所有权仍属于 NETWORK SERVICES。
我无法在 C# 代码中更改文件的所有权。
为什么创建文件时,IIS 不会使用模拟用户的写权限?如果确实如此,我做错了什么?
答案1
好吧,大家,
创建文件时使用的写权限和所有权是 ASP.NET,本地帐户!!!
用网络 AD 帐户替换该帐户。
授予该帐户必要的共享权限。
该帐户将成为本地和远程创建的文件的所有者。
据我所知,在流程层面进行模仿是不可能的......
答案2
或者,您可以强制模拟使用固定帐户,即:
<identity impersonate="true" userName="domain\user" password="password" />
这样,您就不需要对 IIS 配置进行任何更改。
答案3
看起来应用程序池的身份用于创建文件(默认情况下是网络服务);尝试更改它并看看会发生什么。
也许这可以帮助你:http://msdn.microsoft.com/en-us/library/ms998351.aspx。