Was ist der Unterschied zwischen Request.RawUrl
und Request.Url
in ASP.NET?
74
Von MSDN:
Die unformatierte URL wird als der Teil der URL definiert, der den Domäneninformationen folgt. In der URL-Zeichenfolge
http://www.contoso.com/articles/recent.aspx
lautet die unformatierte URL/articles/recent.aspx
.
Dies bedeutet, dass Sie verwenden können rawurl
und sich nicht darum kümmern müssen, über welche Adresse der Server aufgerufen wurde (z. B. http://yourserver/
oder http://yourserver.yourdomain.com/
wenn Sie mehrere Schnittstellen haben).
Die URL
Eigenschaft eines HTTPRequest
Objekts gibt jedoch ein System.URI
Objekt zurück, das auch den Servernamen enthält.
Request.RawUrl
nur syntaktischer Zucker istRequest.Url.LocalPath
.Niemand scheint erwähnt zu haben, dass es die tatsächlich von IIS empfangene Raw-URL anzeigt, bevor eine Manipulation stattgefunden hat, die beispielsweise durch IIS oder Ihr Dateisystem gesendet wurde, wobei die URL neu geschrieben wurde.
/error
Angenommen, Sie haben in einer MVC-App eine Fehlerseite festgelegt und Ihre Webkonfiguration so eingestellt, dass die Fehlerseiten an dieser Stelle durch Ihre benutzerdefinierte Fehlerseite ersetzt werden. Auf diese Weise erhält/faultypage
der Benutzer bei einem Fehler bei die Seite unter,/error
aber die URL in der Adressleiste Ihres Browsers sagt immer noch:www.mysite.com/faultypage
Dies ist eine Übertragung oder ein Umschreiben.Wenn Sie jetzt auf Ihrem Fehlercontroller einen Blick darauf werfen möchten
Request.Url
, wird dies ungefähr so aussehenwww.mysite.com/error
undRequest.RawUrl
(nützlicher?) Sagen,/faultypage
dass dies die tatsächliche Anforderung des Benutzers ist und nicht die Seite, die gerade ausgeführt wird.quelle
Request.RawUrl
ist sehr ähnlich zu,Request.Url.PathAndQuery
außer dassRequest.Url.PathAndQuery
das Standarddokument enthalten ist, wenn eines verwendet wurde, währendRequest.RawUrl
dies nicht der Fall ist. Nach meiner Erfahrung gilt dies für ASP.Net 4.0 und höher .quelle
In der Dokumentation zur HttpRequest.RawUrl-Eigenschaft wird der Eigenschaftswert wie folgt beschrieben:
In der Eigenschaftendokumentation HttpRequest.Url wird der Eigenschaftswert wie folgt beschrieben:
Weitere Informationen zu den Eigenschaften finden Sie in der Dokumentation zur Uri-Klasse .
quelle
Request.RawUrl gibt eine Zeichenfolge zurück, es ist alles nach den Domäneninformationen für die aktuelle URL.
ZB für: Request.RawUrl vs. Request.Url
Request.RawUrl wäre / question / 2019735 / request-rawurl-vs-request-url
Request.Url gibt ein Uri-Objekt zurück, http://msdn.microsoft.com/en-us/library/system.uri_members.aspx
quelle