首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ASP.NET中获取

在ASP.NET中获取
EN

Stack Overflow用户
提问于 2010-11-24 00:19:45
回答 10查看 203.5K关注 0票数 112

我正在寻找一种快速、简单和可靠的方法来在ASP.Net (C#)中获得浏览器的HTTP Referrer。我知道HTTP引用本身是不可靠的,但我确实想要一个可靠的方法来获取引用,如果它存在的话。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-11-24 00:22:45

您可以使用当前请求的UrlReferrer属性:

代码语言:javascript
复制
Request.UrlReferrer

这将从客户端(用户代理)提供也可能不提供的请求中读取Referer HTTP报头。

票数 176
EN

Stack Overflow用户

发布于 2014-09-06 04:42:15

代码语言:javascript
复制
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编码值的警告。

票数 25
EN

Stack Overflow用户

发布于 2010-11-24 00:22:46

使用Request.UrlReferrer属性。

在场景下面,它只是检查ServerVariables("HTTP_REFERER")属性。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4258217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档