我正在寻找一种快速、简单和可靠的方法来在ASP.Net (C#)中获得浏览器的HTTP Referrer。我知道HTTP引用本身是不可靠的,但我确实想要一个可靠的方法来获取引用,如果它存在的话。
发布于 2010-11-24 00:22:45
发布于 2014-09-06 04:42:15
Request.Headers["Referer"]
解释
如果referer HTTP报头格式不正确,Request.UrlReferer
属性将抛出System.UriFormatException
(这是可能的,因为它通常不在您的控制之下)。
因此,Request.UrlReferer
属性不是100%可靠的-它可能包含无法解析到Uri
类中的数据。要确保该值始终可读,请改用Request.Headers["Referrer"]
。
至于像其他人在这里建议的那样使用Request.ServerVariables
,请按照MSDN:
Request.ServerVariables集合
ServerVariables集合检索预定环境变量的值和请求标头信息。
Request.Headers属性
获取HTTP头的集合。
Request.Headers
是比Request.ServerVariables
更好的选择,因为Request.ServerVariables
包含所有的环境变量和头部,而Request.Headers
是一个更短的列表,它只包含头部。
因此,最可靠的解决方案是使用Request.Headers
集合直接读取值。但是,如果您要在表单上显示该值,请注意Microsoft关于HTML编码值的警告。
发布于 2010-11-24 00:22:46
使用Request.UrlReferrer
属性。
在场景下面,它只是检查ServerVariables("HTTP_REFERER")
属性。
https://stackoverflow.com/questions/4258217
复制相似问题