加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 查找上一页Url

发布时间:2020-12-16 03:40:33 所属栏目:asp.Net 来源:网络整理
导读:我试图找到上一页的网址.例如,如果用户使用Server.Redirect(“B.aspx”)从页面A导航到页面B,页面B可以显示引用它的网址. 我试过用 Response.Write(Page.PreviousPage.ToString());Response.Write(Request.UrlReferrer.ToString());Response.Write(Context.Re
我试图找到上一页的网址.例如,如果用户使用Server.Redirect(“B.aspx”)从页面A导航到页面B,页面B可以显示引用它的网址.

我试过用

Response.Write(Page.PreviousPage.ToString());

Response.Write(Request.UrlReferrer.ToString());

Response.Write(Context.Request.UrlReferrer.ToString());

Response.Write(Request.ServerVariables["HTTP_REFERER"].ToString);

但是一切都是徒劳的,它给了我null异常错误

解决方法

如果它只适用于这种情况(以编程方式重定向到B.aspx),那么为什么不在查询字符串上放置一些内容来说明重定向的来源.这可能更适用于多种浏览器类型和设备.

这种方法的一个优点是,您将能够区分重定向到B.aspx和直接链接(通过其中一个页面上的链接,或者从输入URL到地址库的用户)之间的区别到页面B.aspx.

引用者是客户端作为HTTP请求的一部分提供的东西.因此,你不能依赖它.

顺便说一句,这个问题是相关的:
Request.UrlReferrer null?

更新
鉴于您的意见,除了“编辑所有文件”之外,还不清楚这是一个简单的解决方案.我怀疑全球搜索/替换可能是你最好的选择.

更多背景知识:如果您使用Fiddler(或任何其他http调试工具),您应该能够看到在执行重定向时没有填充Referrer标头.例如,这是重定向的结果(即HTTP 302响应导致IE重定向到另一个页面):

GET /webapplication1/WebForm3.aspx HTTP/1.1
Accept: image/gif,image/jpeg,image/pjpeg,application/x-ms-application,application/vnd.ms-xpsdocument,application/xaml+xml,application/x-ms-xbap,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,application/x-shockwave-flash,*/*
Accept-Language: en-GB
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; Zune 3.0)
Accept-Encoding: gzip,deflate
Connection: Keep-Alive
Host: (removed)

以下是通过单击StackOverflow.com上的“问题”链接生成的HTTP请求:

GET /questions HTTP/1.1
    Accept: image/gif,*/*
    Referer: https://stackoverflow.com/questions/772780/finding-previous-page-url
    Accept-Language: en-GB
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; Zune 3.0)
    Accept-Encoding: gzip,deflate
    Host: stackoverflow.com
    Connection: Keep-Alive

您可以看到由页面上的链接生成的后者生成Referer标头.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读