Avatar billede davidfossil Nybegynder
27. september 2005 - 15:47 Der er 19 kommentarer og
1 løsning

Smide en 404 efter brugeren

Jeg kunne godt (for at skjule opbygning) tænkte mig at returnere en http 404, i tilfælde hvor en bruger ikke er autoriseret.

Har forsøgt med følgende (og meget andet) men det virker:
Response.StatusCode = 404;
Response.SuppressContent = true;
Response.End();

Nogen gode idéer?
Avatar billede jokkejensen Novice
27. september 2005 - 15:49 #1
se på customError i webconfig..

Slå eventuelt på på msdn.com, der er et direkte eksempel.

Mvh
Avatar billede davidfossil Nybegynder
27. september 2005 - 15:51 #2
Ehm, jeg ønsker mig ikke nogen custom error.
Bare en ganske alm. 404 side :)
Avatar billede jokkejensen Novice
27. september 2005 - 15:53 #3
ja... du kan specificere en fejl side til hver eneste customError.. i dit tilfælge 404...
Avatar billede davidfossil Nybegynder
27. september 2005 - 15:59 #5
Jeg skal _IKKE_ bruge en custom error side!
Mit ønske er at fremprovokere en 404 "fejl", et sted hvor den ikke normalt ville opstå...
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:03 #6
Kan man ikke bare bruge Response.Redirect("Side_der_ikke_eksisterer.asp") ..?
Eller hvad med at bruge XMLHTTP?: http://www.dotnetjunkies.com/Tutorial/E80EC96F-1C32-4855-85AE-9E30EECF13D7.dcik

/theSurfer
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:04 #7
Server.Transfer burde også virke: http://www.developer.com/net/asp/article.php/3299641

/theSurfer
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:04 #8
3 forslag.. en af dem må virke :-)

/theSurfer
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:05 #9
"Secondly, Server.Transfer maintains the original URL in the browser."
Kilde: http://www.developer.com/net/asp/article.php/3299641

/theSurfer
Avatar billede jokkejensen Novice
27. september 2005 - 16:09 #10
okay, sorry, fik ikke lige læst det ordentligt...

http://west-wind.com/weblog/posts/283.aspx

Der bruges :
  private void ErrorResult()

      {

            Response.Clear();

            Response.StatusCode = 404;

            Response.End();

      }
Avatar billede jokkejensen Novice
27. september 2005 - 16:11 #11
jeg tror ikke server.transfer returnerer 404..
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:15 #12
Jeg mente at davidfossil kunne loade en 404 side (eller en side der ikke eksisterer).

/theSurfer
Avatar billede davidfossil Nybegynder
27. september 2005 - 16:21 #13
jokkejensen er inde på det rigtige (som jeg også nævnte i spørgsmålet), men jeg får stadig bare en blank side.
Avatar billede davidfossil Nybegynder
27. september 2005 - 16:22 #14
Hov! IE viser faktisk en 404 side - det er kun i Firefox jeg får en tom side...
Avatar billede driis Nybegynder
27. september 2005 - 16:25 #15
Når du sætter Response.StatusCode til 404, får du sendt en HTTP 404 til klienten.

De fleste browsere viser dog alligevel det content, der måtte være genereret.
Derfor, hvis du bruger Response.End bagefter, får du en tom side, med HTTP 404 i headeren.

Du skal selv generere en eventuel fejlbesked, du måtte ønske at have til at stå i Content. Det er også det IIS gør når du suser ind på en side, der ikke eksisterer. (Det kan du i øvrigt overbevise dig selv om ved at sammenligne i Fiddler, http://www.fiddlertool.com/, eller LiveHTTPHeader plugin'et til FireFox).
Avatar billede davidfossil Nybegynder
27. september 2005 - 16:33 #16
driis > Passer ganske fint på mine "opdagelser". Er konklusionen at jeg selv må genere indhold til siden, hvis jeg vil have det til at ligne en alm. 404? Kan man evt. trække på IIS' standard-404?
Avatar billede thesurfer Nybegynder
27. september 2005 - 16:36 #17
davidfossil> hmm.. hvis du skal bruge "noget der ligner 404-siden", hvorfor bruger du så ikke bare 404-siden.? :-)
Send brugeren til en 404-siden, eller en side der ikke eksisterer (enten via Server.Transfer eller XMLHTTP, så urlen i adressebaren ikke ændres)..

/theSurfer
Avatar billede driis Nybegynder
27. september 2005 - 18:22 #18
Ja, det vil jeg mene. Hvis du får en 404 fra en Apache server, ser fejlbeskeden jo også anderledes ud.

Du kan nappe 404 filen herfra på en Windows maskine:
C:\WINDOWS\Help\iisHelp\common\404-1.htm
Avatar billede davidfossil Nybegynder
01. november 2005 - 21:41 #19
hvem vil have points? driis?
Avatar billede davidfossil Nybegynder
22. marts 2006 - 10:28 #20
Nu lukker jeg selv denne da jeg endnu ingen svar har fået.
Så må I brokke jer hvis I vil have points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB