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

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
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 = trueSub 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 IfEnd SubSub CheckError()    If Err.Number <> 0 Then        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description        Err.Clear    End IfEnd SubSetValue
  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".
em branco pedido POST sem corpo

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 942638 - Última Revisão: 10/19/2007 11:08:46 - Revisão: 1.1

Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition, Microsoft Internet Security and Acceleration Server 2006 Standard Edition

  • kbmt kbqfe kbexpertiseinter KB942638 KbMtpt
Comentários