IIS7 Windows 2008服务器上的经典ASP模拟问题

时间:2010-02-02 10:00:32

标签: iis-7 asp-classic impersonation kerberos

我正在尝试从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记录匿名登录尝试)。 / p>

知道是什么原因引起的吗?

亲切的问候, 西蒙

3 个答案:

答案 0 :(得分:4)

听起来我觉得你对模仿有点困惑。该过程不会模拟域用户帐户,只是作为该用户运行。有区别。

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

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

您没有准确指定尝试保存文件的方式。值得指出的是几件事。

  1. ASP代码执行可能导致拒绝访问,但不会使用上述机制来尝试解析用户。
  2. 一旦连接被认证,它通常会继续被重新用于后续请求(这与HTTP是“无连接”协议的知识相反)。

答案 1 :(得分:0)

我正在努力清理以前的问题。这个答案不足以回答上面的问题,但我得出的结论是,提供一些洞察力比没有洞察力更好。如果不同意,请采取必要的行动。

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

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

祝你的Kerberos任务好运:-)

答案 2 :(得分:0)

我遇到了同样的问题,结果发现这是对应用程序池的一个简单改动。如果启用32位应用程序设置为FALSE,则我收到登录计算机的提示。将此值设置为true可修复此问题。