博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中关于系统用户信息持久化(接上文)
阅读量:7108 次
发布时间:2019-06-28

本文共 3584 字,大约阅读时间需要 11 分钟。

首先传几张效果图描述一下功能:

经过上文用户名和密码的验证后,就到了添加用户这一步,登陆后的用户可以添加新的用户,被添加的用户可以登陆系统。

这里会用到C#中的“正则表达式”对用户名格式进行判断,以及“LinQ to XML”的技术将用户信息添加到本地XML文件中进行持久化。

PS:关于文中注释掉的部分——

//调用序列化方法.//SerializeUser(AddUserNameText.Text.ToString(), AddUserPwdText.Text.ToString());

可以对用户输入的用户信息(用户名和密码)进行序列化并将结果存储到本地XML文件中。

在此是作为对C#序列化部分知识的一个简单练习,并没有用到本次实践中。

窗体设计如下:

窗体程序代码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Text.RegularExpressions;using System.Xml.Serialization;using System.IO;using System.Xml;using System.Xml.Linq;namespace CheckInfo{    public partial class AddUserForm : Form    {        public AddUserForm()        {            InitializeComponent();        }        private void textBox1_Click(object sender, EventArgs e)        {            if (AddUserNameText.Text == "请输入用户名,格式为domain\\user")             {                AddUserNameText.Text = "";            }        }        private void textBox2_Click(object sender, EventArgs e)        {            if (AddUserPwdText.Text == "请输入密码")             {                AddUserPwdText.Text = "";            }        }        private void button1_Click(object sender, EventArgs e)        {            validateUserName(AddUserNameText.Text.ToString());        }        private void validateUserName(string userName)        {            if (Regex.IsMatch(userName, @"^.+\\.+$") == true)            {                MessageBox.Show("用户名格式正确,准备存入档案!");                if (AddUserPwdText.Text == "")                {                    MessageBox.Show("密码不能为空!");                }                else                 {                    //调用序列化方法.                    //SerializeUser(AddUserNameText.Text.ToString(), AddUserPwdText.Text.ToString());                    //调用添加user到xml方法.                    string xmlPath = @"C:\Users\jqhuang\Desktop\UserInfo.xml";                    saveToXml(xmlPath);                }            }            else             {                MessageBox.Show("用户名格式不正确,请重新输入!");                AddUserNameText.Text = "";            }        }        private void saveToXml(string xmlPath)        {            //Load XML文件.            XElement xe = XElement.Load(xmlPath);            //创建一个节点信息.            XElement user = new XElement("user",               new XAttribute("customer", "yes"),               new XElement("username", AddUserNameText.Text.ToString()),               new XElement("pwd", AddUserPwdText.Text.ToString())            );            //添加节点信息到XML文件中指定的节点下.            xe.Element("users").Add(user);            //保存XML文件.            xe.Save(xmlPath);        }        public static void SerializeUser(string  userName,string passWord)         {            //序列化对象到XML.            User user = new User { username = userName, pwd = passWord };            StringWriter sw = new StringWriter();            XmlSerializer serializer = new XmlSerializer(typeof(User));            serializer.Serialize(sw, user);            sw.Close();            FileInfo xmlFile = new FileInfo(@"C:\Users\jqhuang\Desktop\Users.xml");            StreamWriter sr = new StreamWriter(@"C:\Users\jqhuang\Desktop\Users.xml",true);            sr.Write(sw);            sr.Close();        }    }}
public class User{    string UserName;    string PassWord;    public string username     {        get { return UserName; }        set { UserName = value; }    }    public string pwd    {        get { return PassWord; }        set { PassWord = value; }    }}

 

转载地址:http://qslhl.baihongyu.com/

你可能感兴趣的文章
设计模式--建造者(Builder)模式
查看>>
高效方法势图
查看>>
PHP面向对象的基本写法(区别于java)
查看>>
Oracle EBS 入门
查看>>
js 规范
查看>>
DG_Oracle DataGuard Primary/Standby物理主备节点安装实践(案例)
查看>>
28个MongoDB 的问题
查看>>
代码阅读分析工具Understand 2.0试用
查看>>
[LeetCode] Binary Search Tree Iterator 二叉搜索树迭代器
查看>>
menuStrip鼠标经过自动显示菜单
查看>>
LoadRunner 11简单使用
查看>>
Android 各个版本号WebView
查看>>
VS2013常用快捷键
查看>>
关系数据库中的几种设计范式
查看>>
[Everyday Mathematics]20150304
查看>>
jquery动态改变div宽度和高度
查看>>
adroid 目录
查看>>
mybatis map foreach遍历
查看>>
Windows7下的免费虚拟机(微软官方虚拟机)
查看>>
Linux下暴力破解工具Hydra详解
查看>>