ИСПРАВИТЬ: Может произойти сбой запросы POST для веб-сервера, на котором работает Forefront угроз управления шлюзом 2010

Переводы статьи Переводы статьи
Код статьи: 2596444 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

Рассмотрим следующий сценарий:
  • У вас есть сервер, на котором выполняется Microsoft Forefront угроз управления шлюза (TMG) 2010.
  • TMG сервер настроен как веб-сервер.
  • Веб-прослушиватель TMG использует проверку подлинности на основе форм с помощью делегирование NTLM для опубликованного веб-сервера.
  • Имеются запросы POST для веб-сервер TMG.
В этом случае запросы POST может произойти сбой. Это может вызвать различные проблемы приложения, которые зависят от вида запросов POST, которые не прошли.

Причина

Эта проблема возникает, если выполняются следующие условия:
  • Используется проверка подлинности на основе форм TMG.
  • В правиле публикации TMG для делегирования проверки подлинности опубликованного веб-сервере настроено делегирование NTLM.
  • ISA отправляет запрос к веб-сервер уже прошедшее проверку подключение.
  • Веб-сервер отвечает с 401.
При использовании делегирование NTLM TMG выполняет проверку подлинности подключения к веб-серверу при первом запросе веб-сервер на этом соединении. Таким образом, чтобы последующие запросы не требуется повторная проверка подлинности, проверка подлинности сохраняется на подключение.

Если запрос отправляется на веб-сервер на уже проверенного подключения, веб-сервер может отвечать на запросы с неожиданный запрос проверки подлинности 401. Эта проблема может возникнуть запросы обслуживаются в разных пулах приложений на веб-сервере, так как IIS не сохраняться проверки подлинности пулы приложений.

При использовании проверки подлинности на основе форм, TMG будет обрабатывать 401 неожиданный запрос, добавив тег AuthResend URL-адрес и перенаправление пользователя на исходно запрошенный ресурс. Когда клиент создает второй запрос, TMG определяет, что запрос требует повторной проверки подлинности, тег AuthResend и затем удаляет тег AuthResend перед отправкой запроса на веб-сервер.

Однако перенаправление не включает метод HTTP, и клиент сделает запрос GET после перенаправления. Таким образом запрос POST и тела POST не отправляются на веб-сервер.

Средства, такие как Strace, ее или Fiddler можно использовать на стороне клиента для определения, будет ли TMG отправляет перенаправлений с меткой AuthResend в ответ на запросы POST. Например, перенаправление для запроса на URL-адрес http://domain/test.asp будет следующим: http://domain/test.asp&authResendNNN

Журналов TMG веб-прокси не показывать тег AuthResend, поскольку тег удаляется из URL-адреса перед URL-адрес отправляется на веб-сервере и таким образом не регистрируется.

Такое поведение может наблюдаться для запросов GET. Тем не менее поведение не вызовет проблемы, поскольку перенаправление будет повторную как запрос GET, и это не вызовет ту же проблему.

Решение

Внутреннее значение, которое может быть установлено на правила публикации сообщить TMG автоматически повторной проверки подлинности запросов не GET не существует. Это позволяет избежать непредвиденных 401 запросы от веб-сервера.

По умолчанию в пакет обновления 2 (SP2) TMG эта функция включена на веб-публикации правил, проверку подлинности на основе форм на веб-прослушиватель, и который использует делегирование NTLM.

Чтобы устранить эту проблему, пакет обновления, описанного в следующей статье Microsoft Knowledge Base:
2555840 Описание пакета обновления 2 для управления угрозами Microsoft Forefront шлюза 2010

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Относится к».

Дополнительная информация

Для решения этой проблемы на ISA 2006 или TMG без пакета обновления 2, можно использовать следующий сценарий для установки внутреннего параметра в правиле публикации указанный веб-узел. По умолчанию это параметр, который включает пакет обновления 2 (SP2) TMG.

Чтобы использовать сценарий, скопируйте в Блокнот и сохраните его как файл .vbs на один из элементов массива.

Измените следующую строку сценария, заменяя ReplaceRuleNameHere с именем соответствующего правила веб-публикации:
argRuleName = "ReplaceRuleNameHere"
Затем запустите следующий сценарий на одном из членов массива в массив:
argRuleName = "ReplaceRuleNameHere"
argParamName = "SendLogonOn401"
argVal = "true"

Set rule = CreateObject("FPC.Root").GetContainingArray.ArrayPolicy.PolicyRules.Item(argRuleName)
Set VendorSets = rule.VendorParametersSets

On Error Resume Next
Set VendorSet = VendorSets.Item( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
If Err.Number <> 0 Then
Err.Clear
Set VendorSet = VendorSets.Add( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
CheckError
WScript.Echo "No existing VendorSet."
Else
WScript.Echo "Existing VendorSet found. Values in it:"
for each name in VendorSet.allNames
WScript.Echo " ", name, "=", VendorSet.Value(name)
next
WScript.Echo "-------------------------------------"
End If

On Error GoTo 0

On Error Resume Next
valType = "Int" : Val = CInt(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "Boolean" : Val = CBool(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "String" : Val = CStr(argVal)
End If
End If

WScript.Echo "Setting", argParamName, "=", Val, "(type=" & valType & ")"
VendorSet.Value(argParamName) = Val

VendorSet.Save

Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub

Ссылки

Для получения дополнительных сведений о терминологии, обновления программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Свойства

Код статьи: 2596444 - Последний отзыв: 17 октября 2011 г. - Revision: 1.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Ключевые слова: 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2596444

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com