26. marts 2001 - 23:20Der er
7 kommentarer og 1 løsning
Find IE-USER
dim UserID UserID = Request.ServerVariables(\"LOGON_USER\") If Len(Userid) = 0 then Response.Status = \"401 Unauthorized\" Session.Abandon Response.End End If Session(\"Userid\") = LCase(Mid(UserID, InStr(UserID, \"\\\")+1))
Ovenstående er indsat i headern MEN det virker ikke og jeg har ALDRIG arbejdet med sessions, men dette script er et uddrag fra en måde at finde logon_user_id på vores intranet... hvad er der galt ? :-(
Response-objekt fejl \'ASP 0156 : 80004005\' Headerfejl /HorsMark_asp-test_miljø/findbruger.asp, linje 20 HTTP-headerne skrives allerede til klientbrowseren. Ændringer af HTTP-headers skal foretages, inden sideindholdet skrives
Idet det første html kode bliver sendt til output bufferen vil en \"header\" blive genereret. Headeren indeholder en lang række HTTP indformationer. Når man redirecter sker det ved at man sender en besked til browseren i denne header om at browseren skal spørgen om at få tilsendt en anden side. Det gør browseren, hvorefter den anden side bliver genereret og sendt til browseren.
Hvis man allerede har sendt HTML til output bufferen (som default står til false) vil headeren blive sendt afsted med det samme. Når man senere kommer med en redirect, er det for sendt at sende dem med headeren. Derfor kommer fejlen.
Ved at sætte Response.Buffer = true holder IIS på outputtet til browseren indtil hele asp siden er færdig fortolket. Dette betyder at man kan skrive informationer til headeren selv om man er langt inde i scriptet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.