飞鱼开发框架(一) 给软件登陆窗口增加记住密码和自动登陆功能(图文)

原创 2013年12月03日 08:26:49

先来看个效果:

最近在做一外贸进口软件,也同时在完善这个飞鱼软件开发框架,界面使用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
	            }
         
        }



 

版权声明:本文为博主原创文章,未经博主允许不得转载。

飞鱼开发框架(二) 进入主界面自动打开用户常用模块窗口(图文)

进入飞鱼框架后,软件会根据系统设定的用户常用模块自动为用户打开,在打开的过程中增加了一个Loading图层提示用户进行等待。 初始进入,开始打开工作台窗口: 正在打开的过程中: 打开结束:   ...
  • upi2u
  • upi2u
  • 2013年12月10日 11:07
  • 1569

飞鱼开发框架(三) 配置用户常用模块窗口的工作台(图文)

这个模块设计时考虑用户可能需要自行调整,除了管理员可以对每个人的工作台进行配置外,用户登录进入系统后可以使用菜单打开配置模块自行配置登录后自动打开的窗口。 上面的列表窗口中仅列出了当前用户具有的权限...
  • upi2u
  • upi2u
  • 2013年12月10日 11:41
  • 1346

C#完成记事本功能,有用户名、密码输入、登陆、重置、自动换行、保存

都是在一个form中,显示哪个,就把其他的不可见; namespace book {     public partial class Form1 : Form     {         publi...

Android自定义控件实现登陆界面以及SharedPreferences实现记住密码功能

1.自定义控件 通过继承LinearLayout来实现一个自定义控件,左边为放置图标的ImageView,右边为输入账号或密码的EditText。 布局文件myedittext.xml ...

Android:用SharePreferences实现记住密码功能 (登陆案例)

1、这里首先在onCreate()方法中获取了SharePreferences对象,然后调用他的getBoolean()方法获取remember_password这个键对应的值,因为一开始并不存在对应...

android实现登陆注册记住密码功能

本人开始学习Android,并做了一个登陆注册记住密码的Demo,注册功能将数据放到数据库中,本人是新手,接下来的这些可能对第一次写Android程序的人员来说会有些帮助的。可能有的地方写的不是很好,...

登陆界面软件自动更新功能的实现

在软件的开发和维护过程中,软件是需要不断更新的,不可能一开始就有好的软件,尤其是精品软件的形成。那么如何让用户第一时间获取最新的应用安装包呢?那么就要求我们从第一个版本就要实现升级模块这一功能。 ...

用户登录记住密码功能(记住登陆状态),下次不需要重新登录,注意安全问题!实现原理

做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。 本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的...
  • wplblog
  • wplblog
  • 2016年08月08日 07:33
  • 5368

登陆页面中的记住密码功能 Cookie

登陆页面中的记住密码功能 Cookie

通过js来设置cookie和读取cookie,实现登陆时记住密码的功能

function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:飞鱼开发框架(一) 给软件登陆窗口增加记住密码和自动登陆功能(图文)
举报原因:
原因补充:

(最多只允许输入30个字)