Pueden enviar solicitudes POST que no tienen un cuerpo POST a un servidor Web que se publica en ISA Server 2006

Seleccione idioma Seleccione idioma
Id. de artículo: 942638 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente:
  • Publicar un servidor Web en Microsoft Internet Security and Acceleration (ISA) Server 2006.
  • La escucha de Web de ISA Server está configurada para utilizar autenticación NTLM integrada de Windows.
  • Un usuario utiliza Windows Internet Explorer para tener acceso al servidor Web.
En este escenario, se pueden enviar solicitudes POST que no tienen un cuerpo POST al servidor Web publicado. Este problema puede producir comportamiento inesperado de acceso al Web.

Causa

Cuando Internet Explorer envía una solicitud POST a un sitio Web que utiliza la autenticación NTLM, Internet Explorer reauthenticates con el servidor Web para cada solicitud POST. El cuerpo POST no se envía al servidor Web en el primer protocolo de autenticación.

Si Internet Explorer envía una solicitud POST que requiere la reautenticación en una conexión TCP que ya se ha autenticado, ISA Server continúa utilizando el contexto de autenticación actual en lugar de reauthenticating el cliente. En esta situación, la solicitud POST que no tiene un cuerpo POST se envía al servidor Web publicado.

Solución

Para resolver este problema, siga estos pasos:
  1. Aplicar el paquete de revisiones descrita en el siguiente artículo de Microsoft Knowledge Base:
    942639Descripción del paquete de revisión ISA Server 2006: 24 de septiembre de 2007
  2. Inicie el Bloc de notas.
  3. Copie el código siguiente y, a continuación, péguelo en el Bloc de notas.

    Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.
    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. Guardar el archivo como un archivo de secuencia de comandos de Microsoft Visual Basic utilizando la extensión de nombre de archivo .vbs. Por ejemplo, utilice el siguiente nombre para guardar el archivo:
    EnablePOSTReauthentication.vbs
  5. Inicie un símbolo del sistema, cambie a la ubicación donde guardó el archivo EnablePOSTReauthentication.vbs y, a continuación, ejecute el comando siguiente:
    cscript EnablePOSTReauthentication.vbs
Nota Para revertir a la configuración predeterminada, editar la secuencia de comandos cambiando "const SE_VPS_VALUE = true"a"const SE_VPS_VALUE = false." Guardar la secuencia de comandos y, a continuación, ejecútela de nuevo.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Propiedades

Id. de artículo: 942638 - Última revisión: viernes, 19 de octubre de 2007 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition
  • Microsoft Internet Security and Acceleration Server 2006 Standard Edition
Palabras clave: 
kbmt kbqfe kbexpertiseinter KB942638 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 942638

Enviar comentarios

 

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