当我尝试这个时,无法在登录时访问默认文件。我已经检查了数据库和表,它们是相同的。我试图创建多个用户,但我无法登录。访问多个用户的正确方法是什么?
if (Sessions.Current.authenticated != null)
{
if (Sessions.Current.authenticated)
{
Response.Redirect("Admin/Default2.aspx");
}
}
}
protected void login(object sender, EventArgs e)
{
string username = txtUsername.Text.ToString();
string password = txtPassword.Text.ToString();
DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false);
if (dtUser.Rows.Count > 0)
{
DataRow dr = dtUser.Rows[0];
Sessions.Current.authenticated = true;
Sessions.Current.lastfirst = dr["Name"].ToString();
Sessions.Current.Usertype = dr["userType"].ToString();
Response.Redirect("Admin/Default2.aspx");
Response.Redirect("web/Default.aspx");
}
}
答案 0 :(得分:0)
好的,首先这段代码是残暴的。任何人都可以使用SQL注入来登录您的网站,而无需使用密码或用户名。请改用参数化查询。
不要以这种方式提出查询
DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false);
现在你面临的问题。即你没有点击默认页面。这是因为
Response.Redirect("Admin/Default2.aspx");
执行此代码后,控件将离开此页面并转到Default.aspx2的Page_Load事件。所以在你之后写的东西并不重要,它不会被执行。