ΕΠΙΔΙΌΡΘΩΣΗ: Αιτήσεων POST σε ένα διακομιστή web που εκτελεί το Forefront απειλή Management Gateway 2010 ενδέχεται να αποτύχουν

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 2596444 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:
  • Έχετε ένα διακομιστή που εκτελεί το Microsoft Forefront απειλή διαχείρισης πύλη (TMG) 2010.
  • Ο διακομιστής TMG έχει ρυθμιστεί ως διακομιστής web.
  • Το πρόγραμμα ακρόασης στο web TMG χρησιμοποιεί τον έλεγχο ταυτότητας που βασίζεται σε φόρμες μαζί με το NTLM αντιπροσωπείας στο διακομιστή δημοσιευμένο περιεχόμενο web.
  • Υπάρχουν αιτήσεων POST με το διακομιστή web TMG.
Σε αυτό το σενάριο, οι αιτήσεις POST ενδέχεται να αποτύχει. Αυτό μπορεί να προκαλέσει διάφορα ζητήματα εφαρμογής που εξαρτώνται από το είδος των αιτήσεων POST που αποτυγχάνουν.

Αιτία

Αυτό το ζήτημα προκύπτει, εάν ισχύουν οι ακόλουθες συνθήκες:
  • Χρησιμοποιείται ο έλεγχος ταυτότητας που βασίζεται σε φόρμες TMG.
  • Αντιπροσώπευση NTLM έχει ρυθμιστεί στον κανόνα δημοσίευσης TMG για να μεταβιβάσετε τον έλεγχο ταυτότητας στο διακομιστή δημοσιευμένο περιεχόμενο web.
  • ISA αποστέλλει μια αίτηση στο διακομιστή web σε μια σύνδεση που έχει ήδη ελεγχθεί.
  • Ο διακομιστής web αποκρίνεται με μια 401.
Όταν χρησιμοποιείται το NTLM αντιπροσώπευση, TMG ελέγχει την ταυτότητα μιας σύνδεσης στο διακομιστή web για την πρώτη αίτηση στο διακομιστή web σε αυτήν τη σύνδεση. Ο έλεγχος ταυτότητας στη συνέχεια παραμένει στη σύνδεση, έτσι ώστε οι επόμενες αιτήσεις δεν χρειάζεται να έχετε επανάληψη του ελέγχου ταυτότητας.

Εάν αποστέλλεται μια αίτηση στο διακομιστή web σε μια σύνδεση με έλεγχο ταυτότητας ήδη, ο διακομιστής web ενδέχεται να ανταποκρίνεται με μια μη αναμενόμενη αίτηση ελέγχου ταυτότητας 401. Αυτό το ζήτημα μπορεί να προκύψει όταν οι αιτήσεις θα εξυπηρετούνται από διαφορετική εφαρμογή συνόλων στο διακομιστή web, επειδή οι υπηρεσίες IIS δεν είναι μόνιμες ελέγχου ταυτότητας στις χώροι συγκέντρωσης εφαρμογών.

Όταν χρησιμοποιείται ο έλεγχος ταυτότητας που βασίζεται σε φόρμες, TMG θα χειριστεί 401 μη αναμενόμενη αίτηση από την ανακατεύθυνση του χρήστη ο πόρος που ζητήθηκε αρχικά και προσθέτοντας μια ετικέτα AuthResend στο URL. Όταν ο υπολογιστής-πελάτης κάνει την δεύτερη αίτηση, TMG διαπιστώνει ότι η αίτηση απαιτεί επανάληψη του ελέγχου ταυτότητας από την ετικέτα AuthResend και, στη συνέχεια, καταργεί το tag AuthResend πριν από την αποστολή της αίτησης στο διακομιστή web.

Ωστόσο, η ανακατεύθυνση δεν περιλαμβάνει μια μέθοδο HTTP και ο υπολογιστής-πελάτης θα κάνετε μια αίτηση GET μετά την ανακατεύθυνση. Επομένως, η αίτηση POST και σώμα POST δεν αποστέλλονται στο διακομιστή web.

Μπορεί να χρησιμοποιηθεί ένα εργαλείο όπως Strace, HTTPWatch ή Fiddler του προγράμματος-πελάτη για να προσδιορίσει αν TMG στέλνει ανακατευθύνσεις που έχει την ετικέτα AuthResend σε απάντηση αιτήσεων POST. Για παράδειγμα, μια ανακατεύθυνση για μια αίτηση για τη διεύθυνση URL http://domain/test.asp θα μοιάζει με την ακόλουθη: http://domain/test.asp&authResendNNN

Τα αρχεία καταγραφής διακομιστή μεσολάβησης web TMG δεν εμφανίζονται στην ετικέτα AuthResend επειδή η ετικέτα καταργείται από τη διεύθυνση URL, πριν από τη διεύθυνση URL που αποστέλλεται στο διακομιστή web και επομένως δεν καταγράφεται επίσης.

Αυτή η συμπεριφορά μπορεί να είναι ορατά επίσης για αιτήσεις GET. Ωστόσο, η συμπεριφορά δεν θα προκαλέσει ένα ζήτημα, επειδή η ανακατεύθυνση υποβάλλεται ως μια αίτηση GET, και αυτό δεν προκαλεί το ίδιο πρόβλημα.

Προτεινόμενη αντιμετώπιση

Υπάρχει μια εσωτερική ρύθμιση που μπορεί να οριστεί σε έναν κανόνα δημοσίευσης θα καταλάβετε TMG αυτόματα εκ νέου έλεγχο ταυτότητας αιτήσεις μη GET. Αυτό αποφεύγει τις αιτήσεις μη αναμενόμενο 401 από το διακομιστή web.

Από προεπιλογή, TMG Service Pack 2 αυτή η ρύθμιση είναι ενεργοποιημένη στο web δημοσίευση των κανόνων που έχουν έλεγχο ταυτότητας που βασίζεται σε φόρμες για το πρόγραμμα ακρόασης στο web και χρησιμοποιούν αντιπροσώπευση NTLM.

Για να επιλύσετε αυτό το ζήτημα, εγκαταστήστε το service pack που περιγράφεται στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
2555840 Περιγραφή του Service Pack 2 για το Microsoft Forefront απειλή Management Gateway 2010

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα σχετικά με προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Περισσότερες πληροφορίες

Για να επιλύσετε αυτό το ζήτημα σε ISA 2006 ή TMG χωρίς Service Pack 2, μπορείτε να χρησιμοποιήσετε την ακόλουθη δέσμη ενεργειών για να ορίσετε την παράμετρο εσωτερικής σε έναν κανόνα δημοσίευσης στο web που καθορίζεται. Από προεπιλογή, αυτή είναι η ρύθμιση που επιτρέπει την TMG Service Pack 2.

Για να χρησιμοποιήσετε τη δέσμη ενεργειών, αντιγράψτε το στο Σημειωματάριο (Notepad) και στη συνέχεια αποθηκεύστε το ως αρχείο .vbs σε ένα από τα μέλη του πίνακα.

Επεξεργαστείτε την παρακάτω γραμμή της δέσμης ενεργειών, αντικατάσταση ReplaceRuleNameHere με το όνομα του κανόνα δημοσίευσης web σχετικές:
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

Αναφορές

Για περισσότερες πληροφορίες σχετικά με την ορολογία ενημερωμένων εκδόσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερωμένων εκδόσεων λογισμικού της Microsoft

Ιδιότητες

Αναγν. άρθρου: 2596444 - Τελευταία αναθεώρηση: Δευτέρα, 17 Οκτωβρίου 2011 - Αναθεώρηση: 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 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: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