ASP.Net UrlReferrer错误

时间:2014-08-08 07:25:50

标签: c# asp.net redirect

我有以下代码:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.UrlReferrer.Host != "www.test.com")
            {
                Response.Redirect("~/redirect.aspx");
            }
        }

我的目标是,如果从if语句中的URL以外的URL访问该页面,则该页面无法访问,但是当我运行我的项目时,我收到以下错误: 发生了'System.NullReferenceException'类型的异常

为什么会出现NUll异常?如果它为null,它应该只执行我在Page_Load中的代码...请告知是否有其他方法可以执行我正在尝试的操作,或者是否有办法可以处理Null异常错误。谢谢。

1 个答案:

答案 0 :(得分:1)

当没有引用者时,Request.UrlReferrer可以为null,例如,当您直接在浏览器中打开此页面(作为第一页),或者从fiddler等手动请求时。因此,您应该检查Request.UrlReferrer!=当Request.UrlReferrer为null时,首先返回null或处理大小写。

在您的情况下,您可以尝试:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.UrlReferrer == null || Request.UrlReferrer.Host != "www.test.com")
            {
                Response.Redirect("~/redirect.aspx");
            }
        }

此代码将检查您的网页是否是从www.test.com请求的,并且未在没有推荐人的情况下直接作为首页访问。