何时使用Request.UrlReferrer和何时使用Request.ServerVariables ["HTTP_REFERER"]?

5

两者都返回传入的URL,只是要知道何时使用Request.UrlReferrer和何时使用Request.ServerVariables ["HTTP_REFERER"]以及原因是什么?

目前,在我的一个应用程序中,Urlreferrer在我的本地机器上工作,但当上线后就无法工作了?

此外,如果有人能指导任何替代Urlreferrer和HTTP_REFERRER的方法,那将是最可赞赏的。

2个回答

5
回答上一个问题。Request.UrlReferrer返回一个Uri对象,所以如果UrlReferrer的格式不正确,则会引发异常。这似乎很奇怪,但有时我确实遇到过这种情况。HTTP_REFERER是一个字符串。

+1并感谢您的回答。@fravelgue是正确的,HTTP标头中无效的引用程序URI将导致UriFormatException,如果您尝试访问UrlReferrer属性。请参见此处的示例:https://dev59.com/5mfWa4cB1Zd3GeqPdRPd?nah=1#28845912 - rsbarro

0

Request.ServerVariables[]在实际情况下是否有效? 我的理解是两者相同。

可能是代理和/或防火墙(位于服务器,客户端或任何中间位置作为ISP)正在剥离引荐者吗?


我检查了,没有防火墙。 - Gaurav Arora
@Gaurav:如果你在本地测试过(并且它可以工作),现在它已经上线,你会得到“其他”用户,那么这些用户(或他们的ISP)可能有防火墙等。 - Hans Kesting
目前这个应用在我们自己的网络中已经上线了,用户也来自同一网络,在那里它工作正常。但是在生产环境中却无法正常工作。 - Gaurav Arora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接