我需要在登录后获取用户当前名称。我需要在页面中显示名称,如 welcome user 。请帮助我,我当前的代码如下
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con1"].ConnectionString);
con.Open();
SqlCommand cmdr = new SqlCommand("Select name,password From registration", con);
SqlDataReader dr = cmdr.ExecuteReader();
while (dr.Read())
{
if (txt_name.Text == dr[0].ToString() && txt_pass.Text == dr[1].ToString())
{
Response.Redirect("logout.aspx");
}
else
{
label4.Text ="Invalid Username/Password";
}
}
}
最佳答案
如果您使用的是 ASP.NET membership :
string userName = Membership.GetUser().UserName
但是,显然你没有使用它(我强烈推荐)。为什么在用户成功提供用户名和密码后重定向到 logout.aspx
?
除此之外,您根本没有在查询中使用提供的信息。
SqlCommand cmdr = new SqlCommand("Select name,password From registration", con);
所以你应该使用参数来过滤正确的记录:
using(var cmdr = new SqlCommand("Select name,password From registration where name=@name and password=@password", con))
{
cmdr.Parameters.AddWithValue("@name", userName);
cmdr.Parameters.AddWithValue("@password", password);
if(cmdr.ExecuteReader().HasRows)
{
// user + password correct
}
else
{
// user or password incorrect
}
}
关于c# - asp.net登录后如何获取当前用户的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14458272/