在ASP.NET中,Request.RawUrl和Request.Url有什么不同?
发布于 2010-01-07 19:09:29
来自MSDN:
原始网址被定义为域信息之后的网址部分。在URL字符串
http://www.contoso.com/articles/recent.aspx中,原始URL为/articles/recent.aspx。
这意味着,您可以使用rawurl,而不必关心通过哪个地址调用服务器(例如,如果您有多个接口,则为http://yourserver/或http://yourserver.yourdomain.com/ )。
但是,HTTPRequest对象的URL属性返回一个System.URI对象,该对象还包含服务器名称。
发布于 2013-12-05 00:57:07
似乎没有人提到它显示了IIS实际接收的原始URL,在任何可能发生的操作发生之前,通过URL重写将其发送到IIS或您的文件系统。
假设你在一个MVC应用程序中的/error上设置了一个错误页面,并且你设置了你的webconfig在那个位置用你的自定义错误页面替换错误页面。通过这种方式,当用户在/faultypage上得到错误时,用户将获得/error上的页面,但浏览器地址栏中的url仍然会显示www.mysite.com/faultypage-this is a transfer,或rewrite。
现在在你的错误控制器上,如果你要看一眼Request.Url,它会像www.mysite.com/error和Request.RawUrl说的那样(更有用?) /faultypage,这是用户的实际请求,而不是当前正在执行的页面。
发布于 2013-05-04 08:07:56
Request.RawUrl与Request.Url.PathAndQuery非常相似,不同之处在于Request.Url.PathAndQuery包含Default Document,而Request.RawUrl不包含。根据我的经验,这对ASP.Net 4.0 and higher来说是正确的。
https://stackoverflow.com/questions/2019735
复制相似问题