定义:

public sealed class HttpRequest
{
//
// 摘要:
// 获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
//
// 返回结果:
// 一个 System.Uri 对象。
//
// 异常:
// System.UriFormatException:
// HTTP Referer 请求标头格式不正确,并且不能被转换为 System.Uri 对象。
public Uri UrlReferrer { get; }
}

注意方法注释中的“客户端”。

在使用Request.UrlReferrer时要注意

1.如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值 
2.如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息 
3.点击刷新按钮不会改变Request.UrlReferrer

其中,关于第2点,在Page_Load里方法里执行跳转,因为回发给浏览器的是跳转的目标页(原页面并无回发),所以取不到Request.UrlReferrer。已亲测。

我今天遇到的问题是,上游三方系统调用我的接口a1.ashx,从a1.ashx的ProcessRequest方法里执行Response.Redirect方法跳转到站内的a2.ashx,结果在a2里获取Request.UrlReferrer.Host得到的是上游三方系统的域名。 可见,用上面的第2点可以解释。

Request.UrlReferrer注意点的更多相关文章

  1. Request.UrlReferrer

    1:Request.UrlReferrer可以获取客户端上次请求的url,这样就可以实现类似“上一页”的功能等 2:刷新当前页面,不会改变Request.UrlReferrer的值 3:如果有A,B两 ...

  2. Request.UrlReferrer 使用

    最近有一个功能是反馈统计,然后在反馈建议里面添加是从哪个页面点击过来的,一开始打算做成&url=这种方法加在链接里面然后页面接受参数,后来知道了request.UrlReferrer 知道他可 ...

  3. Request.UrlReferrer为空的问题

    Request.UrlReferrer为空的问题   今天在开发时遇到了一个问题,在用Request.UrlReferrer获取上一页面的地址时发现该对象为空(IE下,FF下可以得到对象),于是上网搜 ...

  4. Request.UrlReferrer详解

    使用前需要进行判断: if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer ...

  5. .NET 使用HttpWebRequest 伪造Request.UrlReferrer

    在网上找了许久关于伪造UrlReferrer地址资料,也许是搜索的关键词不对吧,还是内容涉及到了什么敏感的东西,愣是没找到,换成自定义UrlReferrer也找不到.经过仔细研究,原来在.NET中要自 ...

  6. MVC Request.UrlReferrer为null

    使用情景,登录后返回登录前访问的页面. 这个时候用到了UrlReferrer var returnUrl = HttpContext.Current.Request.UrlReferrer != nu ...

  7. Request.UrlReferrer 实现页面刷新

    在使用Ajax 异步提交表单的时候,需要返回某些状态信息.但如果把需要返回的如分页.过滤的参数写在控制器的参数里面,会比较繁琐. 因此,1.可以在控制器里面使用 Request 对象的请求的URL. ...

  8. 用window.showModalDialog()打开的页面Request.UrlReferrer为null

    今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...

  9. request获取url的方法总结

    辣么多属性.方法  不用就忘了  ,当需要用的时候挠头也想不到,现在总结一下 以备用 例如:http://localhost/testweb/default.aspx 1.Request.Applic ...

随机推荐

  1. 开始使用vue和vuetify

    底部加上vue的script <!-- development version, includes helpful console warnings --> <script src= ...

  2. arcengine直连sde

    搞了半天,找了好多资料,实验好多次,终于解决.参考资料:http://www.cnblogs.com/gaxin/p/5777864.html

  3. Improved SEO with mod_rewrite

    PHP Advanced and Object-Oriented Programming Third Edition <?php //D:\wamp64\www\0613pm\w_wwwroot ...

  4. java常用工具所在的包

    org.apache.commons.lang3:1)StringUtils.isBlank org.springframework.util:1)ResourceUtils.getFile(&quo ...

  5. swift 颜色设置方法

    如下: func RGB(red: CGFloat, green: CGFloat, blue: CGFloat) -> UIColor { return UIColor.init(red: r ...

  6. UVA11491 奖品的价值

    奖品的价值C804 运行时间限制:1000ms: 运行空间限制:51200KB 试题描述 你是一个电视节目的获奖嘉宾.主持人在黑板上写出一个 n 位非负整数(不以 0 开头),邀请你删除其中的 d 个 ...

  7. nodejs 学习四 处理回调地狱

    面对下面回调,你面对这样代码,你心里难道不百万只羊驼吗? nodejs 提供了util.promisify方法,来解决这类问题.(类似es6 种是提供了Promise的方法). const fs = ...

  8. 图解HTTP笔记

    http 0.9  1990年  http 1.0  1996年 Tcp/Ip分层模型 应用层: 如Ftp Http DNS. 传输层: 如 TCP UDP .将报文分成报文段.“传输”指的是端对端( ...

  9. 【SQL】如何使用SQL like 方法和SQL [charlist] 通配符(SQL like的拓展)

    1.like 相关用法 '%a'    //以a结尾的数据 'a%'    //以a开头的数据 '%a%'    //含有a的数据 ‘_a_’    //三位且中间字母是a的 '_a'    //两位 ...

  10. mysql常用压测工具

    关键字:mysql压测工具 mysqlslap.sysbench  基准测试sysbench 压力测试 tpcc  具体怎么使用百度