Vb.net 母版页asp.net中的会话变量
我有一个登录页面,我想将用户名设置为会话变量,因为我想在web应用程序的右角显示它,并且我必须在所有内容页面中访问它 我所做的是在登录之后,在母版页中设置一个会话变量,如:Vb.net 母版页asp.net中的会话变量,vb.net,session,webforms,master-pages,Vb.net,Session,Webforms,Master Pages,我有一个登录页面,我想将用户名设置为会话变量,因为我想在web应用程序的右角显示它,并且我必须在所有内容页面中访问它 我所做的是在登录之后,在母版页中设置一个会话变量,如: Session("nameUser") = Request.QueryString("nameUser") 然后,当我第一次访问默认页面时,它工作正常。但我将页面更改为另一个页面,该页面也继承了masterpage,它崩溃了,错误显示: 对对象的引用未建立为对象实例。我如何解决这个问题 我只想设置一个会话变量,并在所有内容
Session("nameUser") = Request.QueryString("nameUser")
然后,当我第一次访问默认页面时,它工作正常。但我将页面更改为另一个页面,该页面也继承了masterpage,它崩溃了,错误显示:
对对象的引用未建立为对象实例
。我如何解决这个问题
我只想设置一个会话变量,并在所有内容页中使用它。(如果不能,请将其设置为所有内容页的母版页)
编辑:
这是在我的登录页面。如果登录正常,我将请求另一个页面,并将用户名作为参数
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
我在母版页的init中这样做
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
Protected Sub Page_Init(ByVal sender作为对象,ByVal e作为EventArgs)处理Me.Init
如果不是的话,我会回来的
如果Request.QueryString(“nomusario”)什么都没有,那么
会话(“nomusario”)=Request.QueryString(“nomusario”)
lblUsuario.Text=会话(“nomusario”)
其他的
lblUsuario.Text=会话(“nomusario”)
如果结束
如果结束
端接头
为什么不尝试使用
这是因为母版页在每个新页面上检查QueryString变量“nameUser” 最好在登录页面中设置会话(“nameUser”),因为它可以在整个会话中访问
快乐编码 只需从母版页中删除会话变量声明,并在登录页中声明即可。希望这有帮助
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
花点时间阅读:我知道sql注入。。我正在用这个应用程序做一个测试。如果你知道这么多,请解决我的问题。@MaximilianoPoggio我下面的答案对你有用,可以解决你的问题。
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