2012-09-10 66 views
0

我有一個登錄頁面,我想將用戶名設置爲會話變量,因爲我想在Web應用程序的右角顯示它,並且必須訪問它在所有內容頁面中。主頁面中的會話變量asp.net

我在做什麼是做的登錄,在母版頁,如設置一個會話變量之後:

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 

和IM在母版頁的初始化,因爲在每一個新頁面的這樣

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 
+0

描述您正在處理的代碼 – sharad

+0

我編輯它。謝謝 –

+0

花時間閱讀:http://en.wikipedia.org/wiki/SQL_injection – Aristos

回答

1

這是MasterPage檢查QueryString變量「nameUser」。

最好在登錄頁面設置Session(「nameUser」),因爲它可以在整個會話中訪問。

快樂編碼!

0

只是刪除您的會話變量聲明從主頁面並聲明它在登錄頁面。希望這會有所幫助,

Session("nameUser") = Request.QueryString("nameUser") 

    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