我有以下代码:
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异常错误。谢谢。
答案 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请求的,并且未在没有推荐人的情况下直接作为首页访问。