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

被折叠的 条评论
为什么被折叠?



