Pedidos POST que não têm um corpo POST podem ser enviados para um servidor Web que está publicado no ISA Server 2006

Traduções de Artigos Traduções de Artigos
Artigo: 942638 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • Publicar um servidor Web no Microsoft Internet Security and Acceleration (ISA) Server 2006.
  • A escuta da Web do ISA Server é configurada para utilizar a autenticação Windows integrada NTLM.
  • Um utilizador utiliza o Windows Internet Explorer para aceder ao servidor Web.
Neste cenário, pedidos POST que não têm um POST corpo podem ser enviados para o servidor Web publicado. Este problema poderá provocar o comportamento inesperado do acesso à Web.

Causa

Quando Internet Explorer envia um pedido POST para um Web site que utiliza a autenticação NTLM, o Internet Explorer reauthenticates com o servidor Web para cada pedido POST. O corpo POST não é enviado para o servidor Web no handshake de autenticação primeiro.

Se o Internet Explorer envia um pedido POST que requer nova autenticação numa ligação de TCP que já tenha sido autenticada, ISA Server continua a utilizar o contexto de autenticação actual em vez de reauthenticating o cliente. Nesta situação, o pedido POST que não tem um corpo POST é enviado para o servidor Web publicado.

Resolução

Para resolver este problema, siga estes passos:
  1. Aplicar o pacote de correcção que é descrito no artigo seguinte da base de dados de conhecimento da Microsoft:
    942639Descrição do pacote correcção do ISA Server 2006: 24 de Setembro de 2007
  2. Inicie o bloco de notas.
  3. Copie o seguinte código e cole-o no bloco de notas.

    A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.
    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. Guarde o ficheiro como um ficheiro de script do Microsoft Visual Basic utilizando a extensão de nome de ficheiro .vbs. Por exemplo, utilize o seguinte nome para guardar o ficheiro:
    EnablePOSTReauthentication.vbs
  5. Inicie uma linha de comandos, mude para a localização na qual guardou o ficheiro EnablePOSTReauthentication.vbs e, em seguida, execute o seguinte comando:
    cscript EnablePOSTReauthentication.vbs
Nota Para reverter para a definição predefinida, edite o script alterando "Const SE_VPS_VALUE = true"para"Const SE_VPS_VALUE = false." Guardar o script e, em seguida, executá-la novamente.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Propriedades

Artigo: 942638 - Última revisão: 19 de outubro de 2007 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition
  • Microsoft Internet Security and Acceleration Server 2006 Standard Edition
Palavras-chave: 
kbmt kbqfe kbexpertiseinter KB942638 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 942638

Submeter comentários

 

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