Was ist der Unterschied zwischen Request.RawUrl
und Request.Url
in ASP.NET?Request.RawUrl vs. Request.Url
Antwort
Von MSDN:
Die rohe URL wird als Teil der die URL definiert nach der Domäne Informationen. In der URL-Zeichenfolge
http://www.contoso.com/articles/recent.aspx
, lautet die unformatierte URL/articles/recent.aspx
.
Das bedeutet, Sie rawurl
verwenden können und müssen nicht über, durch die Pflege-Adresse der Server aufgerufen wurde (zum Beispiel http://yourserver/
oder http://yourserver.yourdomain.com/
, wenn Sie über mehrere Schnittstellen verfügen.)
jedoch die URL
Eigentum Ein Objekt HTTPRequest
gibt ein Objekt System.URI
zurück, das auch den Servernamen enthält.
Lesen HttpRequest.RawUrl Property
Die rohe URL wird als Teil der die URL definiert nach der Domäne Informationen. In der URL-Zeichenfolge http://www.contoso.com/articles/recent.aspx, lautet die rohe URL /articles/recent.aspx. Die unformatierte URL enthält die Abfragezeichenfolge , falls vorhanden.
A Uri Objektinformation enthält über die URL der aktuellen Anfrage.
Request.RawUrl gibt eine Zeichenfolge zurück, es ist alles nach der Domäneninformation für die aktuelle URL.
ZB für: Request.RawUrl vs. Request.Url
Request.RawUrl wäre/Fragen/2019735/Nachfrage-rawurl-vs-Anfrage-URL
Request.Url ein Uri-Objekt zurückgibt, http://msdn.microsoft.com/en-us/library/system.uri_members.aspx
Request.RawUrl
ist sehr ähnlich zu Request.Url.PathAndQuery
außer, dass Request.Url.PathAndQuery
enthält die Default Document wenn man verwendet wurde, während Request.RawUrl
nicht. Aus meiner Erfahrung gilt dies für ASP.Net 4.0 and higher.
Niemand scheint erwähnt zu haben, dass es die Raw-URL zeigt, die tatsächlich von IIS empfangen wurde, bevor irgendeine Manipulation stattgefunden hat, die es um IIS oder Ihr Dateisystem mit URL-Umschreiben zum Beispiel sendet.
Angenommen, Sie haben in einer MVC-App eine Fehlerseite unter/error gesetzt und Sie haben Ihr Webconfig so eingestellt, dass Fehlerseiten durch Ihre benutzerdefinierte Fehlerseite ersetzt werden. Auf diese Weise erhält der Benutzer beim Auftreten eines Fehlers unter/Fehler die Seite unter/error, aber die URL in der Adresszeile Ihres Browsers wird weiterhin www.mysite.com lauten.com/faultypage - das ist eine Übertragung oder ein Neuschreiben.
Jetzt auf Ihrem Fehler-Controller, wenn Sie einen Blick auf Request.Url werfen wollen, wird es etwas wie "www.mysite.com/error" und Request.RawUrl würde sagen (sinnvoller?) "/ Faultypage" was ist die tatsächliche Anfrage des Benutzers und nicht die Seite, die gerade ausgeführt wird.
Gibt es eine Möglichkeit, die URL nach der Manipulation zu bekommen? –
Ja. 'Request.Url' – BritishDeveloper
Hier ist eine einfache Referenz, wie Sie verschiedene Teile einer URL in C# erhalten.
URL used for this example:
http://localhost:12345/site/page.aspx?q1=1&q2=2
Value of HttpContext.Current.Request.Url.Host
localhost
Value of HttpContext.Current.Request.Url.Authority
localhost:12345
Value of HttpContext.Current.Request.Url.AbsolutePath
/site/page.aspx
Value of HttpContext.Current.Request.ApplicationPath
/site
Value of HttpContext.Current.Request.Url.AbsoluteUri
http://localhost:12345/site/page.aspx?q1=1&q2=2
Value of HttpContext.Current.Request.RawUrl
/site/page.aspx?q1=1&q2=2
Value of HttpContext.Current.Request.Url.PathAndQuery
/site/page.aspx?q1=1&q2=2
I w BritishDeveloper Zustimmen, ist es wichtig Unterschied: die Zeichenfolge (ohne Domäne) In der anderen Hand anfordern Request.RawURL den ursprünglichen Wert des requet hat (bevor die IIS umleiten die URL) und zurück .Uri return
- 1. Request.Url in einem iFrame?
- 2. Request.Url Rückkehr localhost ohne Domäne
- 3. Wie kann ich die Request.RawUrl-Eigenschaft ändern?
- 4. ASP.NET Request.Url wiederholt die URL 3 mal
- 5. Build-Pfad von nodejs request.url Pfadname
- 6. Warum enthält request.rawurl nicht den Teil http: // localhost?
- 7. Request.URL gibt HTTP immer zurück, obwohl SSL aktiviert ist
- 8. Wie vollständige URL mit Request.Url in asp.net erhalten?
- 9. Klasse vs Paket vs Modul vs Komponente vs Container vs Service vs Plattform in Java Welt
- 10. Opa vs Dart vs Haxe vs Coffee
- 11. Akkumulieren vs falten vs reduzieren vs komprimieren
- 12. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 13. ACE vs Boost vs Poco vs wxWidgets
- 14. Inline vs __inline vs __inline__ vs __forceinline?
- 15. Metaphon vs Levenshtein vs Soundex vs Hamming
- 16. Standort vs GeoPoint vs 1E6 vs Aufladen
- 17. VS 2013 MSTest vs nUnit vs xUnit
- 18. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 19. SpiderMonkey vs JavaScriptCore vs?
- 20. & vs * und | vs +
- 21. Bundler vs RVM vs Gems vs RubyGems vs Gemsets vs System Ruby
- 22. Mathematica: Unevaluated vs Aufschieben vs Halten vs Holdform vs HoldAllComplete vs etc etc
- 23. ScheduledExecutorService vs Timer vs Handler
- 24. HttpRequest vs HttpRequestMessage vs HttpRequestBase
- 25. pycuda vs theano vs pylearn2
- 26. Entfernungsabtastung vs Einzelscan vs Überspringungssuche
- 27. Htmlentities vs addslashes vs mysqli_real_escape_string
- 28. Xamarin vs Mono vs Monodevelop
- 29. Ansichtsfenster vs Fenster Vs Dokument
- 30. Redis vs Memcahced vs Hazelcast
Diese Erklärung bedeutet falsch, dass 'Request.RawUrl' nur syntaktischer Zucker für' Request.Url.LocalPath' ist. – Brian
@Brian könnte es hilfreich sein zu erklären, wie es nicht nur syntaktischer Zucker ist. –
@MalRoss: Sie können verschiedene Pfade vollständig während des Umschreibens von Pfad sein (z. B. 404-Handler). Siehe [Antwort des britischen Entwicklers] (http://stackoverflow.com/a/20381367/18192) – Brian