追求新生活 名字2008

活着的意义

一个简单登陆框的变化+更新了如何连接sql数据库,获得数据集,比较两种方法(数据集和读数据)

一般我们写系统登陆的时候,在类文件中定义好验证的函数或过程,如

public static Boolean LoginCheck(string UserNameStr, string PassWordStr, string power)
    {

        string SqlString = "select UserNameStr,PassWordStr from school_data where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
        //OleDbConnection OleDbConn = new OleDbConnection(ConfigurationManager.AppSettings["ConnectionString"]);
        OleDbConnection OleDbConn = new OleDbConnection(cnn);//采用相对路径后不要上一句
        OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
        OleDbConn.Open();
        OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
        Boolean FindUser = false;
        while (OleDbReader.Read())
        {
            FindUser = true;
        }
        if (FindUser)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
甚至一些连power也没有定义,就更加简单了,一般我们定义power是表示该用户的权限的。
考虑到数据库连接一般确定,当然实际是可以很轻易改变的,我们这里谈不变的情况,则数据库中有验证用户表data,在类中定义好函数
 public static Boolean LoginCheck_fromdb(string UserNameStr, string PassWordStr, string power, string table_name)//带指定表名的查询权限的登陆验证
    {
        string SqlString = "select UserNameStr,PassWordStr from " + table_name + " where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
        OleDbConnection OleDbConn = new OleDbConnection(cnn);
        OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
        OleDbConn.Open();
        OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
        Boolean FindUser = false;
        while (OleDbReader.Read())
        {
            FindUser = true;
        }
        if (FindUser)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
我们在参数项中定义多一个表名,则就轻松实现了在库中的验证了,例子应用。
if (data.LoginCheck_fromdb(Login1.UserName, Login1.Password, "0", "data") == true && yanzheng_ma ==TextBox1 .Text )//加上了验证码,防止多次尝试
        {
            Session["UserSession"] = this.Login1.UserName;//利用Session传递变量值
            Response.Redirect("ok.aspx");
        }
        else
        {
            Response.Write("<script>alert('用户名或密码错误!')</script>");
        }
红色涉及验证码中,就需要到本站“随机数中的小小理解”看例子和说明了,也不复杂
在实际研究中,我们还可以类似这样动态改变参数,如power,这样就要看实际需要了。7月看来无写到,就写一篇啦,哈。

如果是sqlserver中,我们建立了数据库hhwtest,建立表userlogin,定义为varchar类型,不要定义为char,name和pwd,则这样登陆验证

看下面web.config配置好先
<appSettings >
    <add key="ConnString" value="Server=127.0.0.1;Database=test;uid=123;pwd=123456"/>
  </appSettings>

然后,在登陆页面中添加一个控件,登陆控件写上

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
          //创建一个SqlConnection对象      
        string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];//新型写法
        SqlConnection Conn = new SqlConnection(cn);

          Conn.Open();
        string sqlstring = " SELECT username,userpassword FROM users_login ";
        //创建一个 DataSet对象
         DataSet myDataSet = new DataSet();
         SqlDataAdapter cmd = new SqlDataAdapter(sqlstring, Conn);//定义,并实例化
        cmd.Fill(myDataSet, "users_login");//获得数据集的方法

        string username1 = myDataSet.Tables[0].Rows[0]["name"].ToString();//应用数据集的元素
        string userpassword = myDataSet.Tables[0].Rows[0]["pwd"].ToString();

//验证开始,
         if ((Login1.UserName.ToString() ==username1) && (Login1.Password.ToString() ==userpassword))
        {
            myConn.Close(); 
            Response.Redirect("Default2.aspx");           
        }
        else
        {
            Response.Write("you are wrong");
        }           
       
    }

 

在Default2.aspx页面中,

        protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["username"] !=""&&Session ["username"]!=null)
            Response.Write("欢迎登陆");
        else
            Response.Redirect("default.aspx");
        }

是不是很简单呢?哈哈,复习也是学习到得。

string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
            SqlConnection conn=new SqlConnection (cn );
            conn.Open ();

 

string sql="select * from userlogin where strUserName='"+Login1 .UserName +"' and strPassword='"+Login1 .Password +"'";
         SqlCommand cmd = new SqlCommand(sql, conn);//上一cmd是SqlDataAdapter,这里是SqlCommand,不同 
            SqlDataReader  reader = cmd.ExecuteReader();  //用读数据的方法
            if (reader.Read())
            {
                Session["admin"] = reader["strUserName"].ToString();
                Session["iLevel"] = reader["iLevel"].ToString();
                 conn.Close();
                 Response.Redirect("index.aspx");
            }

else

{  msg("错误!");

 }

 

posted on 2009-07-29 17:48  pyman  阅读(718)  评论(0编辑  收藏  举报

导航