Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 母版页asp.net中的会话变量_Vb.net_Session_Webforms_Master Pages - Fatal编程技术网

Vb.net 母版页asp.net中的会话变量

Vb.net 母版页asp.net中的会话变量,vb.net,session,webforms,master-pages,Vb.net,Session,Webforms,Master Pages,我有一个登录页面,我想将用户名设置为会话变量,因为我想在web应用程序的右角显示它,并且我必须在所有内容页面中访问它 我所做的是在登录之后,在母版页中设置一个会话变量,如: Session("nameUser") = Request.QueryString("nameUser") 然后,当我第一次访问默认页面时,它工作正常。但我将页面更改为另一个页面,该页面也继承了masterpage,它崩溃了,错误显示: 对对象的引用未建立为对象实例。我如何解决这个问题 我只想设置一个会话变量,并在所有内容

我有一个登录页面,我想将用户名设置为会话变量,因为我想在web应用程序的右角显示它,并且我必须在所有内容页面中访问它

我所做的是在登录之后,在母版页中设置一个会话变量,如:

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