网站首页 > 开源技术 正文
哈喽,你好啊,我是雷工!
本节记录密码修改功能,为了保证账号的安全性,不定时的修改密码是必要操作;
以下为练习笔记。
01 效果演示
1.1、未输入原密码时
1.2、未输入新密码时
1.3、未输入新密码确认时
1.4、两次输入的密码不一致时
1.5、密码修改成功
02 添加窗体
添加一个密码修改窗体命名为:FrmChangePwd;
然后开始添加背景素材,添加控件布局,UI效果如下图所示:
主要控件及属性设置如下表:
控件名称 | 设置属性 | 属性值 | 备注 |
Lable1 | Text | 原密码: | |
BackColor | Transparent | 背景设置为透明 | |
Lable2 | Text | 新密码: | |
Lable3 | Text | 新密码确认: | |
TextBox1 | BackColor | FixedSingle | |
(name) | txtOldPwd | 原密码框名 | |
TextBox2 | BackColor | FixedSingle | |
(name) | txtNewPwd | 新密码密码框名称 | |
UseSystemPasswordChar | True | 密码框非明文 | |
TextBox3 | BackColor | FixedSingle | |
(name) | txtVerifyPwd | 新密码密码框名称 | |
Button1 | FlatStyle | Flat | 设置无边框 |
Text | 确认修改 | ||
BackColor | Highlight | 设置背景色 | |
ForeColor | White | 设置字体文本色 | |
(name) | btnChange | 确认修改按钮名 | |
Button2 | FlatStyle | Flat | 设置无边框 |
Text | 取消 | ||
(name) | btnCancel | 取消按钮名 |
03 修改方法
首先在管理数据访问类SysAdminService中添加修改密码的方法。
代码如下:
/// <summary>
/// 修改登录密码
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public int ChangePwd(SysAdmin objAdmin)
{
string sql = "update Admins set LoginPwd='{0}' where LoginId={1}";
sql = string.Format(sql, objAdmin.LoginPwd, objAdmin.LoginId);
try
{
return SQLHelper.Update(sql);
}
catch (Exception ex)
{
throw new Exception("修改密码出现数据访问错误:" + ex.Message);
}
}
04 确认修改按钮
3.1、添加事件
双击【确认修改】按钮,添加对应事件,
3.2、事件思路
①信息验证,输入信息非空验证,一致性验证,长度验证;
②调用相应方法修改密码;
3.3、事件代码
//密码修改
private void btnChange_Click(object sender, EventArgs e)
{
#region 输入验证
//非空验证
if (this.txtOldPwd.Text.Trim().Length==0)
{
MessageBox.Show("请先输入原密码!","雷工提示");
this.txtOldPwd.Focus();
return;
}
if (this.txtNewPwd.Text.Trim().Length == 0)
{
MessageBox.Show("请输入新密码!", "雷工提示");
this.txtNewPwd.Focus();
return;
}
if (this.txtVerifyPwd.Text.Trim().Length == 0)
{
MessageBox.Show("请再次输入新密码!", "雷工提示");
this.txtVerifyPwd.Focus();
return;
}
//判断用户输入的原密码与当前登录密码是否一致
if(this.txtOldPwd.Text.Trim()!=Program.currentUser.LoginPwd)
{
MessageBox.Show("输入的原密码错误!", "雷工提示");
this.txtOldPwd.Focus();
this.txtOldPwd.SelectAll();
return;
}
//判断新密码的长度
if(this.txtNewPwd.Text.Trim().Length<6)
{
MessageBox.Show("新密码长度需大于6!", "雷工提示");
this.txtNewPwd.Focus();
this.txtNewPwd.SelectAll();
return;
}
//判断两次输入密码是否一致
if(this.txtNewPwd.Text.Trim()!=this.txtVerifyPwd.Text.Trim())
{
MessageBox.Show("两次输入的密码不一致!", "雷工提示");
this.txtNewPwd.Focus();
this.txtNewPwd.SelectAll();
return;
}
#endregion
try
{
SysAdmin objAdmin = new SysAdmin()
{
LoginId = Program.currentUser.LoginId,
LoginPwd = this.txtNewPwd.Text.Trim()
};
if(new SysAdminService().ChangePwd(objAdmin)==1)
{
MessageBox.Show("密码修改成功!", "雷工提示");
Program.currentUser.LoginPwd = this.txtNewPwd.Text.Trim();
this.Close();
}
}
catch (Exception)
{
throw;
}
}
05 取消按钮
//取消密码修改
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
06 后记
以上为修改密码的练习过程,其实验证部分还不够完善,像不允许特殊字符,不可与原密码相等,是否显示密码,都暂未设置,
还有哪些与实际中不符的欢迎大佬们评论指出,
更多相关话题也可以在交流群探讨。
猜你喜欢
- 2024-10-21 mybatis-plus sql注入原理(3.0.1)
- 2024-10-21 C#实战|人员管理系统[22]:按照所属组织名称查询人员列表
- 2024-10-21 C#实战|人员管理系统[33]:实现删除人员信息的功能
- 2024-10-21 C#实战|人员管理系统[32]:修改人员信息的实现
- 2024-10-21 实例讲解MyBatisPlus自定义sql注入器方法
- 2024-10-21 SQL辅助类(sql添加辅助数据库文件)
- 2024-10-21 C#知识|账号管理系统:使用带参数的SQL语句编程添加账号的方法。
- 2024-10-21 SQL注入攻防入门详解(简单的sql注入攻击教程)
- 2024-10-21 SQL - 编写SqlHelper帮助类,简化数据操作代码 173
- 2024-10-21 ADO.Net-SQLHelper帮助类 158(帮助列表)
你 发表评论:
欢迎- 03-19基于layui+springcloud的企业级微服务框架
- 03-19开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- 03-19SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 03-19SpringBoot+LayUI后台管理系统开发脚手架
- 03-19layui下拉菜单form.render局部刷新方法亲测有效
- 03-19Layui 遇到的坑(记录贴)(layui chm)
- 03-19基于ASP.NET MVC + Layui的通用后台开发框架
- 03-19LayUi自定义模块的定义与使用(layui自定义表格)
- 最近发表
-
- 基于layui+springcloud的企业级微服务框架
- 开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- SpringBoot+LayUI后台管理系统开发脚手架
- layui下拉菜单form.render局部刷新方法亲测有效
- Layui 遇到的坑(记录贴)(layui chm)
- 基于ASP.NET MVC + Layui的通用后台开发框架
- LayUi自定义模块的定义与使用(layui自定义表格)
- Layui 2.9.11正式发布(layui2.6)
- Layui 2.9.13正式发布(layui2.6)
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)