Feilmelding når en bruker får tilgang til et SharePoint-webområde som er publisert i ISA Server 2006 eller Windows grunnleggende Business Server 2008: "HTTP 401-uautorisert"

Symptomer

Når en bruker får tilgang til et SharePoint-område som er publisert i Microsoft Internet Security and Acceleration (ISA) Server 2006, ISA Server 2006 SP1 eller Windows grunnleggende Business Server 2008, kan brukeren få en av følgende feilmeldinger:feil melding 1

HTTP 401 uautorisert

Feilmelding 2

HTTP 500 serveren nektet angitte Uniform Resource Locator (URL). Kontakt serveradministratoren.

Problemet oppstår når følgende vilkår er oppfylt:

  • Weblytteobjekt som brukes av SharePoint regel for webpublisering, er HTML-skjemagodkjenning konfigurert.

  • Web-klient sender en POST-forespørsel til SharePoint-webområdet.

  • URL-adressen for POST-forespørselen inneholder utvidede tegn. URL-adressen inneholder for eksempel é, à eller è.

Årsak

Dette problemet oppstår fordi ISA Server eller Windows grunnleggende Business Server 2008 ikke kan analysere en URL-adresse som inneholder utvidede tegn. I dette tilfellet avviser ISA Server eller Windows grunnleggende Business Server 2008 som klienten sender POST-forespørselen.

Løsning

Hvis du vil løse dette problemet, gjør du følgende:

  1. Bruk hurtigreparasjonen som er beskrevet i Microsoft Knowledge Base-artikkel 940250. For mer informasjon, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

    940250 -beskrivelse av hurtigreparasjonspakken for ISA Server 2006: 16 juli 2007

  2. Kopier følgende skript i Notisblokk:notat for å løse dette problemet for ISA Server 2006 bruke følgende skript. Du trenger ikke å bruke hurtigreparasjonen i denne artikkelen for ISA Server 2006 SP1, men du må bruke 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. Lagre filen som en Microsoft Visual Basic script-fil ved å bruke filtypen vbs. Hvis du for eksempel lagre filen ved hjelp av følgende navn:

    EnableKB940248.vbs

  4. Ved ledeteksten, kan du gå til plasseringen der du lagret EnableKB940248.vbs-filen.

  5. Kjør følgende kommando:

    CSCRIPT EnableKB940248.vbs

Obs! Når du har fulgt denne fremgangsmåten, kan bare spørringsdelen av URL-adressen inneholder utvidede tegn. I spørringsdelen følger etter spørsmålstegnet (?) i URL-adressen. Delen som kommer før et spørsmålstegn i URL-adressen kan ikke inneholde spesialtegn, selv etter at du har fulgt denne fremgangsmåten. Hvis du vil fjerne endringer som gjøres når du kjører skriptet i trinn 5, kan du kjøre følgende 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 bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med kvaliteten på oversettelsen?

Hva påvirket opplevelsen din?

Har du ytterligere tilbakemeldinger? (valgfritt)

Takk for tilbakemeldingen!

×