简单的登录窗体结构说明

这个例子很简单,主要是模拟一个过程,希望能给大家一个idea,也请大家多提建议.
下图中的界面是采用用户自定义控件来做的.

1)在该自定义控件进行PageLoad时,就去调用一个生成随机码的方法,用来保证每次的随机码都不一样:
public void rnd()
{
   Random rnd=new Random();
   int rndi=1000+rnd.Next(8999);  //保证随机码不超过8999
   Label1.Text=rndi.ToString();
   Session["rnd"]=rndi;  //用Session保存随机码
}

2)触发"登录"控件事件
--首先校验刚才生成的随机码是否正确
--通过MD5加密机制对用户密码进行加密
--执行UserRegCheck(sqlSQL)方法,对身份的合法进行校验;
--校验成功则转向后台界面,不成功,则给出提示;

3)用户身份校验类的实现:
public class UserRegDb
 {
  public UserRegDb()
  {
    //TODO: 在此处添加构造函数逻辑
    //构造一个空的构造函数,用来实例化对象用的
  }

  public int UserRegCheck(string sqlSQL)
  {
   //取得数据库路径
   string dbPath=System.Configuration.ConfigurationSettings.AppSettings["dbPath"];
   //定义连接字符串
   string ACconnStr="Provider=Microsoft.Jet.Oledb.4.0;Data Source="+HttpContext.Current.Server.MapPath(dbPath);
   //实例化连接对像
   OleDbConnection ACconn=new OleDbConnection(ACconnStr);
   //实例化Command对像
   OleDbCommand ACcomm=new OleDbCommand(UserRegSqlSelect,ACconn);
   //打开数据库
   ACconn.Open();
   //执行SQL
   int Ci=Convert.ToInt32(ACcomm.ExecuteScalar().ToString());

   //关闭数据库
   ACconn.Close();

   return Ci;
  }
 }

4)新用户进行注册时
--判断两次输入的密码是否正确
--到数据表中去select一下,看是否有重复的用户存在
--用户不存在,在通过MD5进行加密操作,并插入新的记录

private void Button1_Click(object sender, System.EventArgs e)
  {
   //对判断输入的密码和输入的确认密码是否一致
   if(CPassword.Text!=APassword.Text)//如果不一致
   {
    Response.Write("<script>alert('确认密码不正确!');</script>");
    Response.Write("<script>history.go(-1);</script>");

   }
   else//一致
   {
   
    UserRegDb regdb=new UserRegDb();//引入(实例化)数据库操作类
    //定义所需SQL语句
    string UserRegSqlSelect="select count(*) from Admin where UserName='"+UserName.Text+"'";
    //通过传值SQL语句到类里的函数,并执行,得到值
    int Ci=regdb.UserRegSelect(UserRegSqlSelect);
    if(Ci>0) //如果有返回值并>0说明,用户已存在
    {
     Response.Write("<script>alert('此用户名已被注册!');</script>");
     Response.Write("<script>history.go(-1);</script>");

    }
    else//用户不存在,则执行以下注册用户(插入用户数据到表)操作
    {
     //用MD5加密密码
     string APasswordT=FormsAuthentication.HashPasswordForStoringInConfigFile(APassword.Text,"MD5").ToLower().Substring(8,16);
                    //定义所需SQL
     string UserRegSql="insert into Admin (UserName,APassword)values('"+UserName.Text+"','"+APasswordT+"')";
     //通过传值SQL语句到类里的函数,并执行,得到值
     int i=regdb.UserReg(UserRegSql);
     if(i==1)//如果有返回值并>0说明插入数据操作成功
     {
      Response.Write("<script>alert('用户注册成功!');</script>");

     }
     else
     {
      Response.Write("<script>alert('用户注册失败!');</script>");
     }
    }
   }
   
  }

5)基本的思路就是这样的,请大家多提宝贵意见.


登录的图片如下:
1.JPG

转载于:https://www.cnblogs.com/ufo0303/archive/2006/09/11/501079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值