0

我有一个通向主页的登录页面,登录页面从数据库中的一个视图中提取以验证用户名和密码(该视图有 3 列,用户名、密码和名称)它选择所有数据,包括名称但仅使用用户名和密码。

这是登录代码:

  protected void LoginButton_Click(object sender, EventArgs e)
    {
        lblerror.Visible = false;     
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SurveySystemConnectionString"].ConnectionString);
        conn.Open();
        string queryString = "SELECT * FROM [Users] WHERE Username=@username AND Password= @password";
        SqlCommand command = new SqlCommand(queryString, conn);
        command.Parameters.AddWithValue("@username", UserNameTextBox.Text);
        command.Parameters.AddWithValue("@password", PasswordTextBox.Text);

        SqlDataReader reader = null;
        reader = command.ExecuteReader();

        if (reader.Read())
        {
            Session["Username"] = UserNameTextBox;
            Session["Password"] = PasswordTextBox;
            Response.Redirect("Home.aspx");
           }
          else
            {
                lblerror.Visible = true;
                lblerror.Text = "Incorrect Username/Password Combination";
            }
            conn.Close();
 }

我想要做的是在主页上显示一条欢迎消息,“欢迎(刚刚使用其 id 的用户的名称)”。如何做到这一点,以便主页在他/她注销之前始终具有该人的姓名,这意味着即使他们在登录时来回进入其他页面。我正在为我的数据库使用 Sql 服务器。

4

2 回答 2

1

例子:

在您的登录代码上,只需获取用户名列并将其传递给会话

Session["Name"] = reader["Name"].ToString() //Supposed your column name is called Name

检查此链接以了解如何在 datareader 上检索列值:使用 C# .NET DataReader 检索数据

然后在您的母版页标题上添加带有 id lblusername 的标签控件

<table>
<tr>
<td align="right">
Welcome :
<asp:Label ID="lblUserName" runat="server"></asp:Label>
<td>
</tr>
</table>

然后在你后面的代码上添加

lblUserNAme.Text =  Session["Name"].toString();

在您的母版页 page_load

问候

于 2012-11-29T01:41:01.133 回答
0

您似乎将用户名存储在 Session["Username"] 中,因此您可以在成功登录后检索该值并将标签的文本设置为该值。

您可以在后面的代码中执行此操作,或者在 *.aspx 中内联:

Welcome <%= Session["Username"] %>!
于 2012-11-29T01:22:35.640 回答