我有一个网站在根网站的凭据下运行,而不是在其 AppPool 中的凭据下运行,我不知道为什么。在其他服务器上这不是问题。
配置:
- Windows 服务器 2003
- 使用域服务帐户 (domain\iis-user) 在自定义 AppPool 中运行的站点 (test.domain.com)
- 使用不同凭据(域\应用程序用户)在单独的 AppPool 下运行的应用程序
当我浏览 test.domain.com/app 时,WindowsIdentity.GetCurrent().Name 显示 domain\iis-user 而不是 domain\app-user。
我已检查两个用户帐户是否位于服务器上正确的 IIS 安全组中,并尝试设置 SPN。将 AppPool 的帐户更改为已知良好的帐户没有任何区别。
答案1
或许也写出 PID,然后检查它是否在您认为正在运行的应用程序池中运行。
身份可能是次要问题——例如,如果启用了匿名,则请求可能冒充匿名用户帐户,该帐户可能与另一个 ID 相一致。
同样,远程共享的 UNC 凭据可能会导致该凭据与 ASP.Net 等一起使用。
答案2
我怀疑您已经<identity impersonate="true" />
在站点或根站点进行了配置web.config
。
machine.config
这也可以在位于以下位置的文件中配置:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\CONFIG