Общая информацияОшибка HTTP 401.1 при использовании WinHttp.WinHttpRequest.5.1 в классическом ASP сайте
Операционная система: Windows Server 2003 R2 с пакетом обновления 2
Вебсервер: IIS 6
NTAuthenticationProviders: только NTLM
WebApplication: Классический ASP
Браузеры используется: IE7, IE8, IE9
Там это веб-приложение Классический ASP называется База знаний, в пределах веб-сайта IIS называется eblcplaza как так: eblcplaza/база знаний /.
eblcplaza имеет анонимный доступ и включена Интегрированная проверка подлинности Windows. База знаний имеет анонимный доступ отключен, а встроенная проверка подлинности Windows включена
База знаний это приложение Классический ASP имеет свой собственный пул приложений, который работает под предопределенный Удостоверение пула приложений «Сетевой сервис»
Когда я вошел в с моим Учетная запись NT Я могу получить доступ к любой странице, которую я хочу просто отлично. Проблема заключается в компоненте WinHttp.WinHttpRequest.5.1. Он используется в некоторых частях базы знаний для выполнения запроса на стороне сервера для извлечения содержимого из некоторых сценариев .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 - Неавторизованный: доступ запрещен из-за недопустимых учетных данных. Internet Information Services (IIS)
С SetAutoLoginPolicy установлен в 2 (Не автоматически отправлять учетные данные в соответствии с MSDN), я получаю следующее сообщение об ошибке на страницах, где используется WinHttpRequest:
Вы делаете не имеют разрешения на просмотр этого каталога или страницы, используя предоставленные вами учетные данные, поскольку ваш веб-браузер отправляет поле заголовка WWW-Authenticate, которое веб-сервер не настроен для принятия. Ошибка HTTP 401.2 - Неавторизованный: доступ запрещен из-за конфигурации сервера.
Я знаю, что моя учетная запись пользователя NT имеет соответствующие права на доступ к этим ресурсам.asp, а также учетная запись Network Service.
Я попытался выяснить, что может быть проблемой в течение нескольких дней, попытался настроить NTAuthenticationProviders только на NTLM, и как Negotiate, так и NTLM среди других вещей, но пока ничего не работало.
Пожалуйста, помогите мне, Он начинает сводить меня с ума.
С уважением,
Барт
Вы делаете запрос из myWebApp на другую страницу в myWebApp? Ваше использование терминов myWebSite и myWebApp запутывает, пожалуйста, отредактируйте, чтобы дать двум приложениям более отличительные имена. – AnthonyWJones
AnthonyWJones, да, это правильно. Я внес изменения, которые вы просили. –
, вы еще не завершили редактирование, есть ссылки на myWebApplication и веб-приложение. Я собираюсь предположить, что в этих точках вы ссылаетесь на базу знаний. Поэтому вы запрашиваете страницу asp внутри базы знаний, чтобы сделать запрос HTTP также к базе знаний. – AnthonyWJones