我用ASP.NET做了一个登录页面,运行也没错误,就是输入用户名和密码以后提示用户名或密码错误,有人知道是什么原因吗?
解决方案 »
- vs2005 新建网站后,怎么会出现两个相同文件夹?
- 问一个弱弱的问题,请大家指点
- 大家讨论下这个静态 List问题
- 高技术性问题 ext1 gridpanel 导出excel
- 各位高手,我想用ASP.NET做一个像九百万和青岛格子网这样的网站。可是不会作,请高手指教。
- 请教:C#中的set 和get 是关键字(保留字)吗?
- 菜鸟求救????怎么老显这个错误???
- 是不是每次类修改重新编译后,使用类均要重新引用?
- 什么是回发请求???
- 为什么不能用中文名ASP文件,求解决方法?
- asp.net中如何使用json?
- C#开发的activex,用户控件做的。在用户控件中启动一新线程,新线程一执行WEB窗口就全关闭了。请问该怎么在activex中使用线程?
protected void btn_login_Click(object sender, EventArgs e)
{
//获取用户输入信息
string UserName = tbxaccount.Text.ToString();
string Password = tbxpwd.Text.ToString();
//用户数据加密
string strMd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "md5");
//Response.Write(strMd5);
//Response.End();
if (Session["CheckCode"] == null)
{
lblMessage.Text = "系统错误,不能生成验证码";
lblMessage.Visible = true;
return;
}
if (tbxcheckcode.Text == "")
{
lblMessage.Text = "请输入验证码";
lblMessage.Visible = true;
return;
}
if (String.Compare(Session["CheckCode"].ToString(), tbxcheckcode.Text, true) != 0)
{
lblMessage.Text = "验证码错误,请输入正确的验证码。";
lblMessage.Visible = true;
return;
}
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["healthyConnectionString"]);
//Response.Write(settings);
//Response.End();
//创建数据库连接对象
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();
//读取用户信息
string mysql = "select * from [user] where username=" + "'" +UserName + "'" + "and userpwd=" + "'"+ strMd5 + "'";
//Response.Write(mysql);
//Response.End();
//创建命令对象
SqlCommand mycmd = new SqlCommand(mysql, myconn);
//创建适配器并执行命令
SqlDataReader mydr = mycmd.ExecuteReader();
try
{
if (mydr.Read())
{
//把用户名写入session对象
Session["UserName"] = mydr[0];
//把权限编号写入session对象
//Session["RoleID"] = mydr[3];
//Response.Write(Session["UserName"]);
//Response.End();
//页面定位
Response.Redirect("main.aspx");
}
else
{
//显示错误信息
lblMessage.Visible = true;
lblMessage.Text = "用户名或密码错误";
}
}
finally
{
//关闭操作
mydr.Close();
myconn.Close();
}
}
else
{
Response.Write("select * from [user] where username=" + "'" +UserName + "'" + "and userpwd=" + "'"+ strMd5 + "'");
Response.End();
//显示错误信息
lblMessage.Visible = true;
lblMessage.Text = "用户名或密码错误";
}
看输出的值到查询分析器里面检查哈结果
这是按lk829的说法运行后在页面上显示的内容。
你登陆的时候 先把密码经过MD5加密过了 然后得到的是一串MD5字符串
而你数据库里的password是没有经过MD5加密的 还是001
你这个时候 用这串MD5加密字符去和正常的001去比较 当然查找不到用户咯
估计是这问题哦
你先把MD5加密这段代码屏蔽看看呢
设个断点看看呢
Session["UserName"] = mydr[0];
就找不到mydr了。