4

我正在尝试从在 IIS7(webadmin)上的 Windows 2008 serer 上运行的经典 asp 站点写入服务器(web05)上的文件。这将失败,并且 web05 在保存操作过程中记录匿名登录尝试。

Webadmin 的站点以经典模式在应用程序池上运行,域用户作为进程帐户。进程帐户有权“信任此用户委托任何服务(仅限 Kerberos)”。这同样适用于 web05 和 webadmin 服务器。

该站点使用 Windows 身份验证,其想法是,当我使用域用户登录该站点时,我的用户的权限应定义允许我在 IIS 站点上下文中执行的操作。如果我打开基本身份验证,一切正常。

我还使用 setspn.exe 为 URL 添加了 SPN。如果我输入 setspn.exe -L webadmin,我会得到:

HTTP/webadmin.companyname.com
TERMSRV/webadmin
TERMSRV/webadmin.companypub.local
HOST/webadmin
HOST/webadmin.companypub.local

因此,据我了解,SPN 设置正确。

如果我在执行保存操作时在 webadmin 上运行 processmonitor,它表示该进程确实在冒充我的域用户 - 但得到“拒绝访问”(正如我之前所说,web05 记录了匿名登录尝试)。

知道是什么原因造成的吗?

亲切的问候,西蒙

4

3 回答 3

4

在我看来,您对冒充有点困惑。该过程不会模拟域用户帐户,它只是以该用户身份运行。它们是有区别的。

当请求到达 ASP 时,它将模拟用户,处理请求的线程将在模拟用户的安全令牌下运行。很有可能让相同的进程在多个线程中模拟多个不同的用户。在启用匿名用户访问的大多数情况下,此用户是访客级别的IUSR帐户。最有可能的是,在此用户下,您的代码正在尝试运行但未能运行。

但是,如果对正在访问的资源关闭了匿名或IUSR帐户无权访问该资源,则会发回 401 响应,并指示它将接受哪些身份验证协议。然后,浏览器可能会尝试使用当前用户凭据或从用户请求某些凭据来验证连接。

您没有具体指定尝试保存文件的方式。它值得指出几件事。

  1. 可能随后导致访问被拒绝的 ASP 代码执行将不会使用上述机制来尝试解析用户。
  2. 一旦连接通过身份验证,它通常会继续被重新用于后续请求(这与 HTTP 是“无连接”协议的知识相反)。
于 2010-02-02T12:50:06.153 回答
0

我遇到了同样的问题,结果证明这是对应用程序池的简单更改。如果启用 32 位应用程序设置为 FALSE,那么我会收到登录机器的提示。将此值设置为 true 可解决此问题。

于 2012-04-04T13:26:59.827 回答
0

我正在尝试清理我以前的问题。这个答案不足以回答上述问题,但我得出的结论是,提供一些见解总比没有好。如果 op 不同意,请采取必要的措施。

这是一种回归——但我记得我想在这个应用程序上运行 kerberos 身份验证。问题原来是我试图在防火墙外做kerberos。该应用程序可以在服务器主域的域和防火墙内正常工作,但每当请求来自外部时就会失败。

我和微软的一位爱尔兰技术人员聊了很多,他教了我一些关于使用 Kerberos 的限制。我想使用 Kerberos 的原因是我不喜欢基本 Windows 身份验证未加密的想法。

祝你的 Kerberos 任务好运:-)

于 2012-03-26T07:00:26.900 回答