zoukankan      html  css  js  c++  java
  • C#中关于系统用户信息持久化(接上文)

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

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

    这里会用到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:UsersjqhuangDesktopUserInfo.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:UsersjqhuangDesktopUsers.xml");
                StreamWriter sr = new StreamWriter(@"C:UsersjqhuangDesktopUsers.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; }
        }
    }
  • 相关阅读:
    链式表的操作
    顺序表的操作
    MDX基础
    1071 小赌怡情 (15 分)
    1069 微博转发抽奖 (20 分)
    1068 万绿丛中一点红 (20 分)
    1066 图像过滤 (15 分)
    02-线性结构2 一元多项式的乘法与加法运算 (20 分
    03-树1 树的同构 (25 分)
    03-树3 Tree Traversals Again (25 分)
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/4437870.html
Copyright © 2011-2022 走看看