FIX: Cereri POST pe un server web care execută fruntea amenințare Management Gateway 2010 poate eșua

Traduceri articole Traduceri articole
ID articol: 2596444 - View products that this article applies to.
Măriți totul | Reduceți totul

SIMPTOME

Luați în considerare următorul scenariu:
  • Aveți un server care execută Microsoft Forefront amenințare Management Gateway (TMG) 2010.
  • Serverul TMG este configurat ca un server web.
  • Ascultător TMG web utilizează autentificarea bazată pe formulare împreună cu delegația NTLM la serverul de web publicate.
  • Există cereri de POST la serverul de web TMG.
În acest scenariu, solicitările POST poate eșua. Acest lucru poate cauza probleme de aplicare diferite care depind de tipul de cereri de POST care nu reușesc.

CAUZĂ

Această problemă apare dacă următoarele condiții sunt adevărate:
  • Autentificarea bazată pe formulare TMG este utilizat.
  • Delegația NTLM este configurat în regula publicare TMG să delege autentificare la serverul de web publicate.
  • ISA trimite o solicitare la server de web pe o conexiune deja autentificat.
  • Web serverul răspunde cu un 401.
Atunci când se utilizează NTLM delegația, TMG autentifică o conexiune la serverul de web pe prima solicitare la server de web pe acea conexiune. Autentificare este apoi a persistat pe conexiunea astfel încât cererile ulterioare nu trebuie să aibă reautentificare.

Dacă o cerere este trimis către serverul web pe o conexiune deja autentificat, serverul de web poate să răspundă cu o solicitare de autentificare 401 neașteptate. Această problemă poate apărea atunci când cererile sunt deservite de altă aplicație bazine pe serverul web, deoarece IIS nu persistă autentificare întreaga cerere piscine.

Atunci când se utilizează autentificarea bazată pe formulare, TMG va gestiona cererea 401 neașteptate redirecționarea utilizatorul înapoi la resursa solicitată ini?ial ?i prin adăugarea unei etichete de AuthResend la URL-ul. Când clientul face cererea doua, TMG stabilește că cererea are nevoie de reautentificare eticheta AuthResend și apoi elimină tagul AuthResend înainte de solicitarea este trimisă la serverul de web.

Cu toate acestea, o redirecționare nu includ o metodă HTTP, iar clientul va face o cerere de GET după o redirecționare. Prin urmare, cererea POST și POST organismul nu sunt trimise către serverul web.

Un instrument precum Strace, HTTPWatch sau Scripcarul poate fi folosit pe client pentru a determina dacă TMG expediaz? redirectări care au tag-ul AuthResend în răspuns la cereri de POST. De exemplu, o redirecționare pentru o cerere de http://domain/test.asp URL ar seamănă cu următorul: http://domain/test.asp&authResendNNN

Jurnalele TMG web proxy nu arată AuthResend tag-ul pentru că tag-ul este eliminat din URL-ul înainte de URL-ul este trimis către serverul web și, prin urmare, de asemenea, nu este conectat.

Acest comportament poate fi văzut, de asemenea, pentru cererile GET. Cu toate acestea, comportamentul nu va provoca o problemă, deoarece redirecționare va fi remisă din nou ca o cerere de GET, și acest lucru duce aceeași problemă.

REZOLUȚIE

Există o setare interne care pot fi setate pentru o regulă de publicare pentru a spune TMG pentru automat reauthenticate cererile ne-GET. Acest lucru evită cererile 401 neașteptate din serverul web.

În mod implicit, în TMG Service Pack 2 această setare este activată pe web publicarea normelor care au autentificarea bazată pe formulare pe ascultător web și care utilizează NTLM delegația.

Pentru a rezolva această problemă, instalați acest service pack, care este descris în următorul articol din baza de cunoștințe Microsoft:
2555840 Descriere a Service Pack 2 pentru Management Microsoft Forefront amenințare Gateway 2010

STARE

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „se aplică la".

INFORMAȚII SUPLIMENTARE

Pentru a rezolva această problemă pe ISA 2006 sau TMG fără Service Pack 2, utilizați următorul script pentru a seta parametrul internă pe o regulă de publicare specificat de web. În mod implicit, aceasta este setarea care permite TMG Service Pack 2.

Pentru a utiliza script-ul, copiați-l în Notepad și apoi salvați-l ca fișier .vbs pe unul dintre membrii matrice.

Editați următoarea linie în script-ul, înlocuind ReplaceRuleNameHere cu numele regulii publicare web relevante:
argRuleName = "ReplaceRuleNameHere"
Apoi executați următorul script pe unul dintre membrii matrice într-o matrice:
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

REFERINȚE

Pentru mai multe informații despre terminologia actualizare software-ul, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
824684 Descrierea terminologie standard care este utilizat pentru a descrie actualizările software Microsoft

Proprietă?i

ID articol: 2596444 - Ultima examinare: 17 octombrie 2011 - Revizie: 1.0
SE APLICĂ LA:
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Cuvinte cheie: 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, nu de un traducător. Deoarece Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, toate articolele din Baza noastră de cunoștințe vor fi disponibile în limba dvs. nativă. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, precum în cazul în care un vorbitor străin poate face greșeli vorbind limba dvs. nativă. Compania Microsoft nu este responsabilă pentru nicio inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții săi. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol:2596444

Trimite?i feedback

 

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