当前位置: 首页 > news >正文

记住密码超简单实现(C#)

实现效果如下

实现过程

 [Serializable]
    class User
    {
        //记住密码
        private string loginID;
        public string LoginID
        {
            get { return loginID; }
            set { loginID = value; }
        }

        private string pwd;
        public string Pwd
        {
            get { return pwd; }
            set { pwd = value; }
        }
       
    }

首先新建一个实体类,创建两个字段并封装成对应属性

                    User user = new User();
                    // 登录时 如果没有Data.bin文件就创建、有就打开
                    FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
                    BinaryFormatter bf = new BinaryFormatter();
                    // 保存在实体类属性中
                    user.LoginID = comboBoxEx1.Text.Trim();
                    //保存密码选中状态
                    if (checkBoxXUser.Checked)
                        user.Pwd = passWordtext.Text.Trim();
                    else
                        user.Pwd = "";
                    //选在集合中是否存在用户名 
                    if (users.ContainsKey(user.LoginID))
                    {
                        //如果有清掉
                        users.Remove(user.LoginID);
                    }
                    //添加用户信息到集合
                    users.Add(user.LoginID, user);
                    //写入文件
                    bf.Serialize(fs, users);
                    //关闭
                    fs.Close();

然后对选中按钮做判断是否选中,若选中则将用户信息添加到集合中。最后记得关闭文件的读写操作~,到这里已经完成了保存用户信息到集合中了。是不是超简单,不过还没有完。因为我们上面只是保存,我们需要打开窗体或者页面的时候,是需要将用户信息再次

读取出来的。所以下面将是对用户信息的读操作

            //读取文件流对象
            FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
            if (fs.Length > 0)
            {
                BinaryFormatter bf = new BinaryFormatter();
                //读出存在Data.bin 里的用户信息
                users = bf.Deserialize(fs) as Dictionary<string, User>;
                //循环添加到Combox1
                foreach (User user in users.Values)
                {
                    comboBoxEx1.Items.Add(user.LoginID);
                }

                //combox1 用户名默认选中第一个
                if (comboBoxEx1.Items.Count > 0)
                    comboBoxEx1.SelectedIndex = comboBoxEx1.Items.Count - 1;
            }
            fs.Close();

读的话比较简单,就不一一解释了,相信各位能看明白,另外,当中需要引用到的类库是

using System.Runtime.Serialization.Formatters.Binary;

using System.Threading;  

 

转载于:https://www.cnblogs.com/zhangxiaoyong/p/5435912.html

相关文章:

  • CSS布局居中
  • Servlet和JSP关系浅析
  • selenium 获取某元素的 某属性 的值
  • BestCoder Round #81 (div.2) 1003 String
  • 2010年架构社区回顾:悠长的一年
  • 【VS开发】使用VS2010创建MFC ActiveX工程项目
  • Java Resource路径小结
  • 在ubuntu 15.04下安装VMware Tools
  • ZeroMQ(java)中监控Socket
  • hdu1418 欧拉公式
  • S3C2440-DMA
  • 冲刺第三天
  • 落花流水又一年
  • 九、oracle 事务
  • 路由器to路由器
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【刷算法】从上往下打印二叉树
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • GraphQL学习过程应该是这样的
  • JAVA之继承和多态
  • k个最大的数及变种小结
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Node 版本管理
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring-boot 启动时碰到的错误
  • 阿里研究院入选中国企业智库系统影响力榜
  • 大数据与云计算学习:数据分析(二)
  • 关于List、List?、ListObject的区别
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用API自动生成工具优化前端工作流
  • 手写一个CommonJS打包工具(一)
  • 小程序01:wepy框架整合iview webapp UI
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.ajax,axios,fetch三种ajax请求的区别
  • (5)STL算法之复制
  • (libusb) usb口自动刷新
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (四)汇编语言——简单程序
  • (算法)Travel Information Center
  • (一)Dubbo快速入门、介绍、使用
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)可以带来幸福的一本书
  • ****Linux下Mysql的安装和配置
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .dwp和.webpart的区别
  • .net framework4与其client profile版本的区别
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道