如何将登录值传输到另一个页面?

时间:2011-11-14 18:44:05

标签: asp.net vb.net

我是使用asp.net的新手,后面是vb.net的代码我只想知道如何在POS页面上看到管理员的名字。看来这段代码不起作用?

Main.lbl_name.Text = CurName.ToUpper
POS.lbl_cashier.Text = CurName.ToUpper 



Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim cmd1 As New SqlCommand
        Dim rdr As SqlDataReader

        cmd1.Connection = cn
        cmd1.Connection.Open()
        cmd1.CommandText = "SELECT * from UserTable WHERE Username ='" & txt_username.Text & "'"
        rdr = cmd1.ExecuteReader

        If rdr.HasRows = True Then
            rdr.Read()
            If txt_username.Text = rdr.Item(0) And txt_password.Text = rdr.Item(3) Then
                CurPos = rdr.Item("Type")
                CurUser = rdr.Item("Username")
                CurName = rdr.Item("EmployeeName")

                If rdr.Item(4) = "ADMINISTRATOR" Then
                    MsgBox("WELCOME! " & rdr.Item(4), MsgBoxStyle.Information)
                    'Main.lbl_name.Text = CurName.ToUpper
                    'POS.lbl_cashier.Text = CurName.ToUpper
                    cmd1.Connection.Close()
                    Response.Redirect("ACESCHOOLSUPPLIES.aspx")
                    'Me.Dispose()

3 个答案:

答案 0 :(得分:3)

你不能只访问其他页面,ASP.NET运行时对其他页面一无所知,你只能访问当前页面!

您可以使用Session变量临时存储一些数据用于当前用户会话,Session对象在每个ASP.NET页面上都可用。

  Session("adminname") = CurName

在您要显示它的其他页面上,您只需从Session

重新加载它
  Dim NewName = Session("adminname")

答案 1 :(得分:1)

取一些隐藏字段并使用session.add(“username”)并存储您的用户名或您想要的用户名,然后从第二页中检索该用户名。

Session.Add("Username",Username);

基本相同
Session["Username"] = Username;

答案 2 :(得分:1)

正如Alaudo所建议的那样,将变量存储在会话状态是一种选择。 为了完整起见,您有其他选择: 饼干 请求参数 隐藏字段(用于POST请求)

登录的用户名是我个人不会在会话状态下存储或使用上面提到的任何替代技术传递的。

查看您的代码,您似乎正在尝试验证某些凭据(用户名/密码)。 我建议你看一下ASP.NET中的MemebershipProvider。你熟悉这个吗?然后,您可以轻松访问登录用户。