一般信息
操作系统:Windows Server 2003 R2 Service Pack 2
网络服务器:IIS 6
NTAuthenticationProviders:仅 NTLM
网络应用程序:经典 ASP
使用的浏览器:IE7、IE8、IE9
在名为eblcplaza的 IIS 网站中有一个名为Knowledgebase的经典 ASP Web 应用程序,如下所示:eblcplaza/knowledgebase/。
eblcplaza 已启用匿名访问和集成 Windows 身份验证。知识库禁用匿名访问并启用集成 Windows 身份验证
知识库是一个经典的 ASP 应用程序,有自己的应用程序池,在预定义的应用程序池标识“网络服务”下运行</p>
当我用我的 NT 帐户登录时,我可以访问任何我想要的页面。问题出在 WinHttp.WinHttpRequest.5.1 组件上。它在知识库的某些部分中用于执行服务器端请求,以从驻留在 Web 应用程序中的某些 .asp 脚本中检索内容。
当在知识库上关闭匿名访问时,问题就开始了。 请注意,重新打开它不是一种选择。
使用 WinHttpRequest 的请求示例:
set WinHTTPRequest = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
WinHTTPRequest.SetTimeouts 20000, 20000, 20000, 20000
call WinHTTPRequest.Open("POST", someUrlToAspScript, false)
WinHTTPRequest.SetAutoLogonPolicy 0
WinHTTPRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
WinHTTPRequest.Send strQueryString
Response.Write(WinHTTPRequest.ResponseText)
将 SetAutoLoginPolicy 设置为 0,我在使用 WinHttpRequest 的页面上收到以下错误消息:
您无权使用您提供的凭据查看此目录或页面。HTTP 错误 401.1 - 未经授权:由于凭据无效,访问被拒绝。互联网信息服务 (IIS)
将 SetAutoLoginPolicy 设置为 2(不要根据 MSDN 自动发送用户凭据),我在使用 WinHttpRequest 的页面上收到以下错误消息:
您无权使用您提供的凭据查看此目录或页面,因为您的 Web 浏览器正在发送 Web 服务器未配置为接受的 WWW-Authenticate 标头字段。HTTP 错误 401.2 - 未经授权:由于服务器配置,访问被拒绝。
我知道我的 NT 用户帐户具有访问这些 .asp 脚本的适当权限这一事实,网络服务帐户也是如此。
我试图找出可能是什么问题几天才知道,尝试将 NTAuthenticationProviders 设置为仅 NTLM 以及 Negotiate 和 NTLM 等,但到目前为止没有任何效果。
请帮帮我,它开始让我发疯。
问候,
巴特