我想获取用户在浏览器中键入的确切URL。当然,我总是可以使用Request.Url.ToString()
之类的东西,但这在以下情况下无法满足我的需求:http://www.mysite.com/rss
上面的网址Request.Url.ToString()
给我的是:http://www.mysite.com/rss/Default.aspx
有谁知道如何做到这一点?
我已经尝试过: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")
最佳答案
编辑:您想要HttpWorkerRequest.GetServerVariable()
与键HTTP_URL
或CACHE_URL
。请注意,IIS 5和IIS 6的行为有所不同(请参阅有关密钥的文档)。
为了能够访问所有服务器变量(如果得到null
),请直接访问HttpWorkerRequest:
HttpWorkerRequest workerRequest =
(HttpWorkerRequest)((IServiceProvider)HttpContext.Current)
.GetService(typeof(HttpWorkerRequest));