Richieste POST che non hanno un corpo POST possono essere inviate a un server di Web che viene pubblicato in ISA Server 2006

Traduzione articoli Traduzione articoli
Identificativo articolo: 942638 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

Si consideri lo scenario seguente:
  • È possibile pubblicare un server Web in Microsoft Internet Security and Acceleration (ISA) Server 2006.
  • Il listener Web ISA Server è configurato per utilizzare l'autenticazione Windows integrata NTLM.
  • Un utente utilizza Windows Internet Explorer per accedere al server Web.
In questo scenario, le richieste POST che non hanno un corpo POST possono essere inviate al server Web pubblicato. Questo problema potrebbe causare un comportamento di accesso Web imprevisto.

Cause

Quando Internet Explorer invia una richiesta POST in un sito Web che utilizza l'autenticazione NTLM, Internet Explorer reauthenticates con il server Web per ogni richiesta POST. Il corpo POST non viene inviato al server Web in handshake di autenticazione prima.

Se Internet Explorer invia una richiesta POST che richiede la riautenticazione su una connessione TCP che è già stata autenticata, ISA Server continuerà a utilizzare il contesto di autenticazione corrente invece di riautenticazione del client. In questo caso, la richiesta POST non può avere un corpo POST viene inviata al server Web pubblicato.

Risoluzione

Per risolvere il problema, attenersi alla procedura descritta di seguito:
  1. Applicare il pacchetto di aggiornamento rapido (hotfix) descritto nell'articolo della Microsoft Knowledge Base riportato di seguito:
    942639Descrizione del pacchetto aggiornamento rapido (hotfix) di ISA Server 2006: 24 settembre 2007
  2. Avviare il Blocco note.
  3. Copiare il codice riportato di seguito e incollarlo nel blocco note.

    Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Questo include, ma non è limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. Questo articolo si presuppone che conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft possono spiegare la funzionalità di una particolare procedura. Tuttavia, non modificherà questi esempi per fornire funzionalità aggiuntive o creare procedure per soddisfare specifiche esigenze.
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
    Const SE_VPS_NAME = "EnablePOSTReauthentication"
    Const SE_VPS_VALUE = true
    
    Sub SetValue()
    
        ' Create the root object.
        Dim root  ' The FPCLib.FPC root object
        Set root = CreateObject("FPC.Root")
    
        'Declare the other objects needed.
        Dim array       ' An FPCArray object
        Dim VendorSets  ' An FPCVendorParametersSets collection
        Dim VendorSet   ' An FPCVendorParametersSet object
    
        ' Get references to the array object
        ' and to the network rules collection.
        Set array = root.GetContainingArray
        Set VendorSets = array.VendorParametersSets
    
        On Error Resume Next
        Set VendorSet = VendorSets.Item( SE_VPS_GUID )
    
        If Err.Number <> 0 Then
            Err.Clear
    
            ' Add the item.
            Set VendorSet = VendorSets.Add( SE_VPS_GUID )
            CheckError
            WScript.Echo "New VendorSet added... " & VendorSet.Name
    
        Else
            WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)
        End If
    
        if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
    
            Err.Clear
            VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
    
            If Err.Number <> 0 Then
                CheckError
            Else
                VendorSets.Save false, true
                CheckError
    
                If Err.Number = 0 Then
                    WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
                End If
            End If
        Else
            WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
        End If
    
    End Sub
    
    Sub CheckError()
    
        If Err.Number <> 0 Then
            WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
            Err.Clear
        End If
    
    End Sub
    
    SetValue
    
  4. Salvare il file come file di script Microsoft Visual Basic utilizzando l'estensione di nome file vbs. Ad esempio, è possibile utilizzare il seguente nome per salvare il file:
    EnablePOSTReauthentication.vbs
  5. Avviare un prompt dei comandi, il percorso in cui salvare il file EnablePOSTReauthentication.vbs e quindi eseguire il comando riportato di seguito:
    cscript EnablePOSTReauthentication.vbs
Nota Per ripristinare l'impostazione predefinita, modificare lo script modificando "SE_VPS_VALUE const = true"a"SE_VPS_VALUE Cost = false." Salvare lo script e quindi eseguire nuovamente.

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Proprietà

Identificativo articolo: 942638 - Ultima modifica: venerdì 19 ottobre 2007 - Revisione: 1.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition
  • Microsoft Internet Security and Acceleration Server 2006 Standard Edition
Chiavi: 
kbmt kbqfe kbexpertiseinter KB942638 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 942638
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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