当前位置:编程学习 > C#/ASP.NET >>

登录界面的实现 为什么登录时if语句就没执行 总是用户名和密码错误 数据库里已经先设定了用户名 登录是为什么还不行啊?帮帮忙解决

 using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.OleDb;
public partial class main : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "简易论坛—用户登录";
    }
    protected void ButtonEnter_Click(object sender, EventArgs e)
    {
        if (TextBoxName.Text == "" || TextBoxPassword.Text == "")
        {
            Response.Write("<script language=javascript>alert('用户名或密码不得为空!');</script>");
            return;
        }
        OleDbConnection conn = new OleDbConnection();
        conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=" + Server.MapPath("App_Data/msg.mdb");
        conn.Open();
        string strSecPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(TextBoxPassword.Text,"MD5");
        string strSQL="select ulevel from manager where uname='"+TextBoxName.Text+"'and upwd='"+strSecPwd+ "'";
        OleDbCommand com=new OleDbCommand(strSQL,conn);

        OleDbDataReader dr=com.ExecuteReader();
        dr.Read();
        string UserLevel;
        if(dr.HasRows)
            {
              UserLevel=dr["ulevel"].ToString();
              if (UserLevel == "0")
              {
                  Session["pass"] = "admin";
                  Response.Redirect("manager.aspx");
              }
              else
              {
                  Session["pass"] = "guest";
                  Response.Redirect("guest.aspx");
              }
            }
        else
            {
               Response.Write("<script language=javascript>alert('用户名或密码错误');</script>");
               return;
            }
            dr.Close();
            conn.Close();
        

    }
    protected void ButtonRegister_Click(object sender, EventArgs e)
    {
        Response.Redirect("register.aspx");
    }
}
--------------------编程问答-------------------- 怎么又发一贴??

你断点跟踪下值看看,因为你使用了MD5,所以感觉你下面第一句获取的strSecPwd值作为第二句SQL的条件,到数据库中查找,是没有符合条件的记录,所以if(dr.HasRows)的循环根本不会被执行到。
将你的SQL语句,拿到查询分析器中执行下,看有数据没有???
string strSecPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(TextBoxPassword.Text,"MD5");
  string strSQL="select ulevel from manager where uname='"+TextBoxName.Text+"'and upwd='"+strSecPwd+ "'"; --------------------编程问答-------------------- 验证下,你的密码MD5加密后,是不是和数据库的一样
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,