我想获取用户在浏览器中键入的确切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_URLCACHE_URL。请注意,IIS 5和IIS 6的行为有所不同(请参阅有关密钥的文档)。

为了能够访问所有服务器变量(如果得到null),请直接访问HttpWorkerRequest:

HttpWorkerRequest workerRequest =
  (HttpWorkerRequest)((IServiceProvider)HttpContext.Current)
  .GetService(typeof(HttpWorkerRequest));

10-05 22:33