飞鱼开发框架(一) 给软件登陆窗口增加记住密码和自动登陆功能(图文)
2013-12-03 08:26
453 查看
先来看个效果:
最近在做一外贸进口软件,也同时在完善这个飞鱼软件开发框架,界面使用Winform开发。为了用户使用方便,这不尝试增加记住用户名密码的功能,并且可以设置开机自动启动软件,一切都是为了减少用户的点击操作。
可以有多种方式来保存用户信息,比如存成本地文件、xml、注册表、更有甚者存入数据库。个人认为存到数据库里这个操作在没登陆前就发生有些不太好,先去数据库取密码回来放到输入框里等着点击感觉不太好。
最后采用了注册表的方式来保存这些信息。这里为了演示没有对保存进注册表的密码进行加密,为了安全应该继续对保存的密码加密。
自动登陆:
初始窗体显示:
最近在做一外贸进口软件,也同时在完善这个飞鱼软件开发框架,界面使用Winform开发。为了用户使用方便,这不尝试增加记住用户名密码的功能,并且可以设置开机自动启动软件,一切都是为了减少用户的点击操作。
可以有多种方式来保存用户信息,比如存成本地文件、xml、注册表、更有甚者存入数据库。个人认为存到数据库里这个操作在没登陆前就发生有些不太好,先去数据库取密码回来放到输入框里等着点击感觉不太好。
最后采用了注册表的方式来保存这些信息。这里为了演示没有对保存进注册表的密码进行加密,为了安全应该继续对保存的密码加密。
private void ckbKeepInfo_CheckStateChanged(object sender, EventArgs e) { RegistryKey location = Registry.LocalMachine; RegistryKey soft = location.OpenSubKey("SOFTWARE", true);//可写 RegistryKey myPass = soft.CreateSubKey("FTLiang"); myPass.SetValue("s1", tbUserName.Text); myPass.SetValue("s2", tbPassword.Text); myPass.SetValue("s3", ckbKeepInfo.Checked); }
自动登陆:
private void ckbAutoStart_CheckStateChanged(object sender, EventArgs e) { if(ifFistIn == false) { RegistryKey location = Registry.LocalMachine; RegistryKey soft = location.OpenSubKey("SOFTWARE", true);//可写 RegistryKey myPass = soft.CreateSubKey("FTLiang"); myPass.SetValue("s4", ckbAutoStart.Checked); if (ckbAutoStart.Checked) { string exeDir = Application.ExecutablePath;//要启动的程序绝对路径 RegistryKey rk = Registry.LocalMachine; RegistryKey softWare = rk.OpenSubKey("SOFTWARE"); RegistryKey microsoft = softWare.OpenSubKey("Microsoft"); RegistryKey windows = microsoft.OpenSubKey("Windows"); RegistryKey current = windows.OpenSubKey("CurrentVersion"); RegistryKey run = current.OpenSubKey(@"Run", true);//这里必须加true就是得到写入权限 run.SetValue("FTStart", exeDir); } else { string exeDir = Application.ExecutablePath;//要启动的程序绝对路径 RegistryKey rk = Registry.LocalMachine; RegistryKey softWare = rk.OpenSubKey("SOFTWARE"); RegistryKey microsoft = softWare.OpenSubKey("Microsoft"); RegistryKey windows = microsoft.OpenSubKey("Windows"); RegistryKey current = windows.OpenSubKey("CurrentVersion"); RegistryKey run = current.OpenSubKey(@"Run", true);//这里必须加true就是得到写入权限 run.DeleteValue("FTStart");//这里必须加true就是得到写入权限 } } }
初始窗体显示:
private void FmLogin_Load(object sender, EventArgs e) { //从注册表中读取 是否保存了用户名密码 自动启动配置 try { RegistryKey location = Registry.LocalMachine; RegistryKey soft = location.OpenSubKey("SOFTWARE", false);//可写 RegistryKey myPass = soft.OpenSubKey("FTLiang", false); tbUserName.Text = myPass.GetValue("s1").ToString(); string s2 = myPass.GetValue("s2").ToString(); bool ifSave = Convert.ToBoolean(myPass.GetValue("s3")); ckbKeepInfo.Checked = ifSave; bool ifSave2 = Convert.ToBoolean(myPass.GetValue("s4")); ckbAutoStart.Checked = ifSave2; if (ifSave) { tbPassword.Text = s2; } else { tbPassword.Text = ""; } ifFistIn = false; //程序已启动完毕,可以执行注册表相关动作 } catch (Exception ex) { //todo something } }
相关文章推荐
- 飞鱼开发框架(一) 给软件登陆窗口增加记住密码和自动登陆功能(图文)
- 飞鱼开发框架(二) 进入主界面自动打开用户常用模块窗口(图文)
- 飞鱼开发框架(二) 进入主界面自动打开用户常用模块窗口(图文)
- 一个简单WPF登陆界面,包含记住密码,自动登录等功能,简洁美观
- java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能 修改注册逻辑 增空用户名密码的反馈 增加showMessageDialog()提示框
- 飞鱼开发框架(三) 配置用户常用模块窗口的工作台(图文)
- 飞鱼开发框架(三) 配置用户常用模块窗口的工作台(图文)
- BCM平台全自动刷机软件,TFTP正式版1.62隆重发布,增加固件记忆功能
- 飞鱼开发框架(四) 窗体自动获取用户登录信息
- (转)自动完成功能,VS2005下开发数据窗口控件,及数据窗口列,即表中表的实现。大家关注!
- 通达OA开发 增加批量删除工作流功能(图文)
- 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
- 安卓登陆框记住密码和自动登录的实现
- 模仿QQ记住账号和密码的登陆与实现的android开发实例
- android实现登陆注册记住密码功能
- Flex中如何实现类似像QQ登录框中那种“记住密码”、“自动登录”功能,还有如何实现文本框中记录最后一次输入的值?
- WPF中实现登陆窗口的“记住帐号”功能
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
- Android实现带有记住密码功能的登陆界面
- 软件开发火狐自动填写用户名和密码