将http_referer与http_host进行比较

时间:2010-11-24 13:49:44

标签: asp.net contains request.servervariables

您好 我需要检查http_referer是否与当前站点的站点相同。

我有以下代码

Dim strReferer As String

strReferer = Request.ServerVariables("HTTP_REFERER")
If strReferer.Contains(Request.ServerVariables("HTTP_HOST")) then
   'do task
End If

这引发了一个错误 - “对象引用未设置为对象的实例。”并将if行标记为有问题的代码行。

我出错的任何想法?

我的解决方案:

strReferer = "" & Request.ServerVariables("HTTP_REFERER")

表示字符串总是有值,即使它什么都没有。

2 个答案:

答案 0 :(得分:3)

因为HTTP_REFERER并不总是填充 - 只有您点击了链接。因此,如果您直接浏览页面,该标题将为空。

答案 1 :(得分:1)

Request.ServerVariables("HTTP_REFERER")可能是null,所以在分配变量时应该检查一下。

If Not String.IsNullOrEmpty(Request.ServerVariables("HTTP_REFERER"))
    'do your stuff