winform登录用户名怎么保存(Form登录框本地记住密码功能实现)

这段时间在给学生进行软件开发培训过程中,针对用户登录功能常见的记住密码功能,部分学生缺乏编程经验,不知道采用什么方法实现该功能,进而无法编程。本文主要针对记住密码功能实现给初学者提供建议与参考。首先给出记住密码实现页面,点击登录时针对记住密码自动填写用户名与密码。实现效果如下图:

winform登录用户名怎么保存(Form登录框本地记住密码功能实现)(1)

登录窗口记住密码功能实现


功能实现如上图所示,目前主流解决该问题的方法包括:

1、用户名,密码本地文件存储

以二进制文件形式实现对用户登录信息进行本地文件存储,在软件运行load时查询该文件是否存储,如果文件存在则读取用户登录信息并显示到界面控件中。

2、用户,密码Access存储

该方法主要借助简单的数据库Access实现对用户登录信息进行存储,通过本地数据库读写操作实现对用户信息进行读写,进而实现记住密码功能

3、将记住密码状态存储到注册表中

通过注册表读写功能将用户密码状态写入注册表中,通过键值实现状态存储,软件运行时查询注册表记住密码状态,读取相关信息实现记住密码功能。


以上三类方法是当前解决登录功能记住密码的主要方法,结合实际应用难易程度,本文选择实用文件存储方式实现记住密码。基本思路流程及部分代码描述如下:

1、首次登录系统时需要选择是否记住密码,如选择记住密码则查询保存用户名密码文件是否存在,存在删除,不存在创建文件,写入二进制数据。

if(File.Exists("f:/userlogin.bin"))//假设存储文件名称与路径为f:/userlogin.bin { File.Delete("f:/userlogin.bin");//判断是否存在,存在则删除旧文件 }

创建并写入数据:

try { bw = new BinaryWriter(new FileStream("f:/userlogin.bin", FileMode.Create)); bw.Write(user_id);//写入用户ID bw.Write(user_pasd);//写入用户密码 bw.Close(); } catch(IOException ex) { MessageBox.Show("写入文件失败" ex.Message);//显示异常信息 }

2、首次登录完成记住密码相关信息文件创建与写入之后下一步就是需要利用创建的文件实现记住密码功能。当用户再次登录时自动填写用户名与密码。实现基本思路就是窗体 load事件中去查询读取文件信息,如果文件读取成功显示用户名与密码,实现代码如下:

if (File.Exists("f:/userlogin.bin")) { /*********读取*******************************/ try { br = new BinaryReader(new FileStream("f:/userlogin.bin", FileMode.Open)); string uname = br.ReadString();//读取用户名 string upasd = br.ReadString();//读取密码 br.Close(); if(uname!="" && upasd != "") { this.TextBox1.Text = uname;//写入TextBox this.textBox2.Text = upasd;//写入TextBox this.textBox3.Text = code; //验证码写入TextBox this.checkBox1.Checked = true;//设置记住密码状态 } } catch (IOException ex) { MessageBox.Show("文件读取失败" ex.Message); } }

以上两部分是实现记住密码的核心思路及实现代码,其中写入数据时在用户点击登录事件中完成的,而显示用户密码与用户名是在窗体加载事件中完成的。当然这种方法也是存在安全问题的,本地文件记住用户密码尽管采用了二进制文件形式进行了读写,或者复杂路径,存储系统盘等形式让一般用户找不到文件,或者找到文件读取不了。但对于有经验程序员还是可以找到文件并以二进制形式读取。综合考虑衡量成本安全,还是可以实用该方法实现记住密码功能。毕竟面对的绝大多数最终用户都不是程序员。


本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣,可关注该头条号,如有编程学习问题可以联系作者,共同探讨。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页