Holen Sie sich die genaue URL, die der Benutzer in den Browser eingegeben hat

8

Ich möchte die genaue URL erhalten, die der Benutzer in den Browser eingegeben hat. Natürlich könnte ich immer etwas wie Request.Url.ToString() verwenden, aber das gibt mir nicht, was ich in der folgenden Situation will:

http://www.mysite.com/rss

Mit der URL über was Request.Url.ToString() mir geben würde ist:

http://www.mysite.com/rss/Default.aspx

Weiß jemand, wie man das erreicht?

Ich habe es schon versucht:

  • Request.Url
  • Request.RawUrl
  • this.Request.ServerVariables["CACHE_URL"]
  • this.Request.ServerVariables["HTTP_URL"]
  • ((HttpWorkerRequest)((IServiceProvider)HttpContext.Current).GetService(typeof(HttpWorkerRequest))).GetServerVariable( "CACHE_URL")
  • ((HttpWorkerRequest)((IServiceProvider)HttpContext.Current).GetService(typeof(HttpWorkerRequest))).GetServerVariable( "HTTP_URL")
Vance Smith 16.04.2009, 19:56
quelle

6 Antworten

6

Bearbeiten: Sie möchten die HttpWorkerRequest.GetServerVariable() mit dem Schlüssel HTTP_URL oder CACHE_URL . Beachten Sie, dass sich das Verhalten zwischen IIS 5 und IIS 6 unterscheidet (siehe Dokumentation der Schlüssel).

Um auf alle Servervariablen zugreifen zu können (falls Sie null erhalten), greifen Sie direkt auf die HttpWorkerRequest:

zu %Vor%     
Lucero 16.04.2009 19:58
quelle
4

Denken Sie auch daran, dass die "genaue URL, die der Benutzer eingegeben hat" möglicherweise nie auf dem Server verfügbar ist. Jeder Link in der Kette von den Fingern zum Server kann die Anfrage leicht modifizieren.

Wenn ich beispielsweise xheo.com in mein Browserfenster tippe, wird IE automatisch in Ссылка konvertiert. Wenn die Anfrage dann an IIS geht, sagt sie zum Browser - Sie möchten wirklich die Standardseite bei Ссылка . Der Browser reagiert also, indem er nach der Standardseite fragt.

Das Gleiche passiert mit HTTP 30x Redirect-Anfragen. Der Server wird wahrscheinlich nur die letzte Anfrage des Browsers sehen.

    
Paul Alexander 16.04.2009 20:59
quelle
3

Versuchen Sie es mit Request.Url.OriginalString Könnte dir das geben, wonach du suchst.

    
Vivek Sharma 20.10.2009 05:42
quelle
0
%Vor%

Ich denke, der Affe, hinter dem du her bist ...

    
Surgical Coder 16.04.2009 20:51
quelle
0

Der einfachste Weg, dies zu tun, ist clientseitige Programmierung, um die exakte URL zu extrahieren:

%Vor%     
StacMan 23.09.2011 05:36
quelle
0

Es ist möglich, dass Sie nur einige der Werte aus dem Anfrageobjekt kombinieren müssen, um die genaue eingegebene URL neu zu erstellen:

%Vor%

Geben Sie genau die Adresse Ссылка ein:

%Vor%     
George Filippakos 29.04.2014 14:38
quelle

Tags und Links