Was ist der Unterschied zwischen Request.RawUrlund Request.Urlin ASP.NET?
Antworten:
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.aspxlautet die unformatierte URL/articles/recent.aspx.
Dies bedeutet, dass Sie verwenden können rawurlund 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 URLEigenschaft eines HTTPRequestObjekts gibt jedoch ein System.URIObjekt zurück, das auch den Servernamen enthält.
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.
/errorAngenommen, 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 /faultypageder Benutzer bei einem Fehler bei die Seite unter, /erroraber die URL in der Adressleiste Ihres Browsers sagt immer noch: www.mysite.com/faultypageDies 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 aussehen www.mysite.com/errorund Request.RawUrl(nützlicher?) Sagen, /faultypagedass dies die tatsächliche Anforderung des Benutzers ist und nicht die Seite, die gerade ausgeführt wird.
Request.RawUrlist sehr ähnlich zu, Request.Url.PathAndQuery außer dass Request.Url.PathAndQuerydas Standarddokument enthalten ist, wenn eines verwendet wurde, während Request.RawUrldies nicht der Fall ist. Nach meiner Erfahrung gilt dies für ASP.Net 4.0 und höher .
In der Dokumentation zur HttpRequest.RawUrl-Eigenschaft wird der Eigenschaftswert wie folgt beschrieben:
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.aspxlautet die unformatierte URL/articles/recent.aspx. Die unformatierte URL enthält die Abfragezeichenfolge, falls vorhanden.
In der Eigenschaftendokumentation HttpRequest.Url wird der Eigenschaftswert wie folgt beschrieben:
Ein Uri- Objekt, das die URL der aktuellen Anforderung enthält.
Weitere Informationen zu den Eigenschaften finden Sie in der Dokumentation zur Uri-Klasse .
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
Request.RawUrlnur syntaktischer Zucker istRequest.Url.LocalPath.