多层密码(三层-登陆与修改密码)(1)

登录表结构及数据

1)前期准备

1.1 表中只有三个字段,满足此次例题的需求即可;真实的登录表中字段像登录的时间,地点,IP等很多的字段,用来记录用户的登录信息;想想哪些推荐给你令你欲罢不能的"专属"广告....此次只是讲解登录与修改密码的实现逻辑暂时不用三层架构与模态窗口,登录实现逻辑简单些,主要是修改密码的实现逻辑;自己有空的修改下使其成为三层架构的项目

1.2 SQLHelper帮助类,编写配置文件的信息,添加对Configuration类库的引用

2)实现登录

多层密码(三层-登陆与修改密码)(2)

登录窗口

登录的实现逻辑是登录成功后将用户名(Lname)显示在登录窗口的标题栏上,因为后面还需要修改密码,所以将获取该用户的整条记录,将获取的用户Id暂时存储在类(Global)的Lid中

多层密码(三层-登陆与修改密码)(3)

登录成功存储当前该用户的Id

多层密码(三层-登陆与修改密码)(4)

登录实现代码

登录成功将用户Id存储在一个全局的公共类中,在修改密码时需要用到

3)修改密码

为"修改密码"添加一个单击事件,触发此事件将打开一个修改密码的窗口,前提是必须登录成功的用户才能修改密码,否则不能修改密码;为确定按钮添加一个单击事件

多层密码(三层-登陆与修改密码)(5)

修改密码窗口

打开修改密码窗口的两个方式:

3.1判断公共类(Global)中的Lid是否大于0(数据库表中的主键Lid从1开始),如果大于0表示成功登录,Lid中存储了该用户的Lid,修改时也是根据Lid修改当前用户的密码

多层密码(三层-登陆与修改密码)(6)

3.2如果没有成功登录,"修改密码"按钮就不能使用;设置此按钮的属性Enabled为false,当用户登录成功后将按钮的Enabled属性值设置为true即可

多层密码(三层-登陆与修改密码)(7)

没有登录,修改密码按钮为灰色,登录成功后,代码中的Enabled才起作用

3.3修改密码的实现逻辑

1)首先判断新密码与确认密码是否一致,不一致就不去数据库查询数据

多层密码(三层-登陆与修改密码)(8)

判断新密码是否一致

接收的密码不能使用Trim()方法(作用是去掉字符串两端空格),可以试试为自己电脑设置密码全部为空格,如果电脑系统内部也使用Trim()方法就永远登录不了

2)验证输入的旧密码是否与当前用户的密码一致(Global中存储了当前用户的Lid)

多层密码(三层-登陆与修改密码)(9)

旧密码错误,不能修改密码

可以将此验证代码提取为一个返回布尔值的方法,便于截图没有提取为方法

3)修改密码

多层密码(三层-登陆与修改密码)(10)

修改密码

4)修改密码完善

4.1修改密码时没有检测新旧密码是否一样,如果一样就不去数据库中修改,节省资源

4.2没有使用加密的密码,可以试着将之前学习的MD5"加密"加入进来

,