【发布时间】:2014-08-06 11:16:27
【问题描述】:
我有两个 aspx 网页。在第一个我有这个代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Redirect("~/Code.aspx")
End Sub
现在在 Code.aspx 页面我有这个代码:
Label1.Text = Request.UrlReferrer.ToString
我希望标签显示第一页 URl,但运行时出现错误。如何解决此问题?谢谢
这是错误信息:Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
【问题讨论】:
-
Request.UrlReferrer可能是null因此你在尝试访问它时会得到一个NullReferenceException。检查null。附带说明:UrlReferrer在使用Response.Redirect时将始终为null -
我发布了错误消息。谢谢 Sani,那么它将如何显示引用的 URL?我应该使用什么来代替 Response.Redirect?
-
UrlReferrer只有在客户端(即浏览器)发送时才会包含之前的Url的信息。您不能以编程方式设置它。如果用户在浏览器中输入 url,则不会有UrlReferrer。只有当用户单击链接时,客户端才会发送UrlReferrer。客户还可以选择根本不发送UrlReferrer。这完全取决于客户端/浏览器。UrlReferrer在任何时候都不应该被信任是有效的。它可以被欺骗。 -
好的。我想通过在浏览器栏中粘贴 URL 来禁用用户对我的网页的访问。我在第一页使用了 response.redirect 方法。有什么办法可以用吗?
-
要满足您的要求,您应该实现
authentication。 IE。让用户使用用户名/密码登录您的网站。正如我所说,你永远不应该相信UrlReferrer是有效的。