ログイン ページがあり、ユーザー名をセッション変数として設定したいと考えています。これは、Web アプリケーションの右隅に表示し、すべてのコンテンツ ページでアクセスする必要があるためです。
私がやっていることは、ログインを行った後、マスターページでセッション変数を次のように設定することです:
Session("nameUser") = Request.QueryString("nameUser")
次に、最初にデフォルトのページにアクセスすると、問題なく動作します。しかし、マスターページも継承する別のページに変更すると、クラッシュしてエラーが表示されます:
reference to object isn't established as an object instance
. どうすればこれを解決できますか?
セッション変数を設定して、すべてのコンテンツ ページで使用したいだけです。(できない場合は、すべてのコンテンツ ページのマスター ページに設定します)
編集:
これは私のログインページにあります。ログインに問題がなければ、ユーザーの名前をパラメーターとして別のページにリクエストします。
Dim SQL As String = "SELECT * FROM Usuarios WHERE Identificacion='" & txtNomUsuario.Text & _
"' AND Password='" & txtPasswordUsuario.Text & "'"
Dim da As New SqlDataAdapter(SQL, cnn)
Dim ds As New DataSet
da.Fill(ds)
If ds.Tables(0).Rows.Count() = 1 Then
Dim nomUsuario As String = txtNomUsuario.Text
Response.Redirect("Default.aspx?nomUsuario=" & nomUsuario)
Else
Response.Redirect("about:blank")
End If
そして、マスターページの初期化でこれを行っています
Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Init
If Not IsPostBack Then
If Request.QueryString("nomUsuario") <> Nothing Then
Session("nomUsuario") = Request.QueryString("nomUsuario")
lblUsuario.Text = Session("nomUsuario")
Else
lblUsuario.Text = Session("nomUsuario")
End If
End If
End Sub