如何在HttpContext.Current.Server.Execute之后获取原始URL?

时间:2012-01-20 08:08:00

标签: c# asp.net .net url-rewriting

昨天发布了这个问题,但有点令人困惑,所以我已经删除并再次发布!

好吧,我打电话给(例如)一个带有这个链接的服务器(我称之为“原始网址”):

http://example.com/page/?IDL=1&IDH=90

现在,在这台服务器上,我进行了一种url重写,更改了所请求的URL:

http://example.com/myhandler404/page:PORT/?ID=34&IDL=1&IDH=90

而且,通过HttpContext.Current.Server.Execute(),我称之为新网址。

现在,是否有可能(我http://example.com/myhandler404/page:PORT/?ID=34&IDL=1&IDH=90)获取请求的“原始网址”?没有解析/替换,可能访问一些Execute对象的属性?

尝试使用Request.UrlReferrer,但我得到一个空对象?!?!?

2 个答案:

答案 0 :(得分:1)

尝试使用Server.Transfer代替Execute以及properties

或将原始网址附加到QueryString

http://www.myserver.it/myhandler404/page:PORT/?ID=34&IDL=1&IDH=90&安培; OriginalUrl = HTTP://www.myserver.it/page/ IDL = 1&安培; IDH = 90

并按照ID,IDL和IDH的方式阅读。

答案 1 :(得分:0)

使用RawUrl。 它在一个或多个Server.Transfer(s):

时始终保持不变
System.Web.HttpContext.Current.Request.RawUrl