我正在尝试使用VB.NET使用以下代码访问ASP.NET中的上一页:
Partial Class _Default Inherits Page
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim previousPage As String = Page.Request.UrlReferrer.ToString
If (Request.UrlReferrer <> Nothing) Then
If previousPage.Contains("Login") Then
Dim tUsername As String = Session("Username")
lblUsername.Text = "Welcome, " + tUsername
ElseIf previousPage.Contains("Register") Then
Dim cUsername As String = Session("CUsername")
lblUsername.Text = "Welcome, " + cUsername
Else
lblUsername.Text = "Welcome, Guest"
End If
End If
End Sub
End Class
我收到此错误:
对象引用未设置为对象的实例。
在:
Dim previousPage As String = Page.Request.UrlReferrer.ToString
我想要做的是访问上一页,这样我就可以得到一个会话变量。
答案 0 :(得分:0)
尝试此代码。
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If (Request.UrlReferrer <> Nothing) Then
Dim previousPage As String = Page.Request.UrlReferrer.ToString
If previousPage.Contains("Login") Then
Dim tUsername As String = Session("Username")
lblUsername.Text = "Welcome, " + tUsername
ElseIf previousPage.Contains("Register") Then
Dim cUsername As String = Session("CUsername")
lblUsername.Text = "Welcome, " + cUsername
End If
Else
lblUsername.Text = "Welcome, Guest"
End If
End Sub
End Class
答案 1 :(得分:0)
不确定你想要做什么,但虽然它很容易回答你的具体问题,你应该退后一步,回顾一下为什么你这样做。
似乎您正试图根据某些身份验证来控制流量。如果是,请考虑ASP.Net Forms Authentication +/-登录控件。您可以将此体系结构“插入”现有的身份验证机制(这意味着您不必根除现有的内容来实现它)。
(如果您仍想重新发明轮子)在登陆“this”页面之前,请考虑使用Cookie,而不是试图找出“用户来自哪里” - 两者都可能因x而异 - 您的网站拥有或将拥有的网页越多,您就会拥有更多的意大利面条。