Felmeddelande när en användare ansluter till en SharePoint-webbplats som publiceras i ISA Server 2006 eller Windows Essential Business Server 2008: "HTTP 401 obehörig"

Symptom

När en användare ansluter till en SharePoint-webbplats som publiceras i Microsoft Internet Security and Acceleration (ISA) Server 2006, ISA Server 2006 SP1 eller Windows Essential Business Server 2008, kan användaren få något av följande felmeddelanden:felmeddelande 1

HTTP 401 obehörig

Felmeddelande 2

HTTP 500 servern nekade den angivna URL: en för Uniform Resource Locator. Kontakta serveradministratören.

Det här problemet uppstår om följande villkor är sanna:

  • I webblyssnaren som SharePoint-webbpubliceringsregeln använder konfigureras HTML-formulärautentisering.

  • Webbklienten skickar en POST-begäran till SharePoint-webbplatsen.

  • URL-adressen till POST-begäran innehåller utökade tecken. Till exempel innehåller URL: en é, à eller è.

Orsak

Det här problemet uppstår eftersom ISA Server eller Windows Essential Business Server 2008 inte kan tolka en URL som innehåller utökade tecken. I det här fallet avvisar ISA Server eller Windows Essential Business Server 2008 POST-begäran som klienten skickar.

Lösning

Lös problemet så här:

  1. Installera snabbkorrigeringen som beskrivs i Microsoft Knowledge Base-artikeln 940250. Om du vill veta mer klickar du på följande artikelnummer och visar artikeln i Microsoft Knowledge Base:

    940250 Beskrivning av snabbkorrigeringspaket för ISA Server 2006:16 juli 2007

  2. Kopiera följande skript till anteckningar:Anmärkning Lös problemet i ISA Server 2006, använder du följande skript. Du behöver inte installera snabbkorrigeringen i den här artikeln för ISA Server 2006 SP1, men du måste använda skriptet.

    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"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 that are 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
  3. Spara filen som en Microsoft Visual Basic-skriptfil med filnamnstillägget. vbs. Spara till exempel filen med följande namn:

    EnableKB940248.vbs

  4. Gå till en kommandotolk och flytta till den plats där du sparade filen EnableKB940248. vbs.

  5. Kör följande kommando:

    cscript EnableKB940248. vbs

Notera När du följer dessa steg kan endast Frågedelen av URL: en innehålla utökade tecken. Frågans del följer frågetecknet (_ QM _) i URL: en. Den del som kommer före frågetecknet i URL: en får inte innehålla utökade tecken även när du använder den här upplösningen. Om du vill ta bort de ändringar som görs när du kör skriptet i steg 5 kör du följande skript:

Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = FalseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectroot = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.array = root.GetContainingArrayVendorSets = array.VendorParametersSetsOn Error Resume NextVendorSet = VendorSets.Item(SE_VPS_GUID)If Err.Number <> 0 ThenErr.Clear()' Add the itemVendorSet = VendorSets.Add(SE_VPS_GUID)CheckError()WScript.Echo("New VendorSet added... " & VendorSet.Name)ElseWScript.Echo("Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME))End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.Clear()VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckError()ElseVendorSets.Save(False, True)CheckError()If Err.Number = 0 ThenWScript.Echo("Done with " & SE_VPS_NAME & ", saved!")End IfEnd IfElseWScript.Echo("Done with " & SE_VPS_NAME & ", no change!")End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo("An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description)Err.Clear()End IfEnd SubSetValue Change to:[INSERT CORRECTION]Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = falseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.Set array = root.GetContainingArraySet VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End Ifif VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "gäller".

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×