click事件问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:56:23
protected void Button1_Click(object sender, EventArgs e)
{
{
string username = this.textbox1.Text.Trim();
string password = this.textbox2.Text.Trim();
try
{
OleDbConnection conn = db.CreateConnection();
conn.Open();
OleDbCommand cmd = new OleDbCommand("select count(*) from [admin_systemInfo] where Name='" + username + "' and password='" + password + "'", conn);
int n = (int)cmd.ExecuteScalar();
if (n > 0)
{
Session["login"] = username;
Response.Write("<script>alert('登录成功!');location.href='admin/default.aspx'</script>");
Response.End();
}
else

首先你在设计时不能用字符串拼接去做用户名和密码的验证!最后是存储过程!要是非要用的话就用StringBuilder去把输入的字符串先清理一下.不然绝对会出现数据库注入问题.
原因!假如我知道表中用户名是admin,而不知道密码.那么我在你的username 中输入admin or 那你看看你的select语句变成了什么!???

验证用户名密码用存储过程比较方便和安全。
这段的意思是 将用户密码和密码去掉前后的空格,然后异常处理数据库的连接。返回一个select计数 是否存在。存在就成功否则失败