反序列化可以记录账号密码实现自动登录

这篇博客介绍了如何利用反序列化技术记录并自动填充账号密码,从而实现自动登录的功能。通过创建RememberAccount.txt文件,序列化和反序列化RememberAccount对象,实现了在用户选择记住密码后,下次启动时自动加载账号信息并登录的功能。

一.反序列化

(1)  作用:

1. 可以记录账号和密码。

2. 可以取出实现账号登录。

(2) 创建RememberAccount.txt

1.代码:

// Debug路径下创建一个文件RememberAccount.txt保存账号和密码;

string strPath = AppDomain.CurrentDomain.BaseDirectory + "RememberAccount.txt";

      //  *   (2)记住秘密为true,

      if (IsRemember == true)

      {

       //File是IO流  判断是否存在

      if (!File.Exists(strPath))

     {

    //* ①File.Exists判断文件是否存在,不存在File.Create创建文件;'

      File.Create(strPath).Close();    } }

2.效果图:

(3)序列化写入文本

1.代码:

//②实例化实体对象RememberAccount并赋值;

       RememberAccount remember = new RememberAccount

                                {

                                    MyUserName = UserName,

                                    MyPassword = Password,

                                    MyIsRemember = IsRemember,

                                    MyIsLogin = IsLogin,

                                };

// * ③调用封装类SerializerBinary序列化对象保存文件。

   BinaryFormatter formatter = new BinaryFormatter();//产生一个序列化类的对象

//产生一个文本存放序列化之后的数据流

  using (FileStream stream = new FileStream(strPath,FileMode.OpenOrCreate))

        { //开始序列化并写入文本

       formatter.Serialize(stream, remember); }

        Console.Read();

2.效果图:

(4).提取自动验证登录

1.代码:

string strPath = AppDomain.CurrentDomain.BaseDirectory + "RememberAccount.txt";//声明RememberAccount对象接收

BinaryFormatter formatter = new BinaryFormatter();//产生一个序列化类的对象

RememberAccount remember = new RememberAccount();//接受反序列化的实体对象

//打开路径

using (FileStream fileStream = new FileStream(strPath,FileMode.Open))

{//转换成对象

remember = formatter.Deserialize(fileStream) as RememberAccount;

                }//*3、对象不为空,获取对象信息:记住账号、自动登录;

                if (remember != null)

                {

                    IsRemember = remember.MyIsRemember;//记住密码

                    IsLogin = remember.MyIsLogin;//自动登录

        //*4、判断记住账号 IsRemember== true;则执行回填账号、密码

                    if (IsRemember==true)

                    {   

UserName = remember.MyUserName; //回填账号

                         Password = remember.MyPassword;//、密码  }

                    //       * 5、自动登录IsLogin == true,调用验证登录方法,实现登录。

                    if (IsLogin == true)

                    {

//验证登录方法调用

                        Login(window);  }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值