zoukankan      html  css  js  c++  java
  • C#中关于用户名和密码的验证问题。

    本次练习的目的是使用LinQ to XML,正则表达式,明天在这个基础上练习使用序列化和反序列化,继续加点儿小功能。

    首先,这是一个窗体程序,设计如下:

    存放用户名和密码的XML如下:

    实现的代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 using System.Text.RegularExpressions;
    11 using System.Xml;
    12 using System.Xml.Linq;
    13 
    14 namespace CheckInfo
    15 {
    16     public partial class Form1 : Form
    17     {
    18         public Form1()
    19         {
    20             InitializeComponent();
    21         }
    22 
    23         private void textBox1_TextChanged(object sender, EventArgs e)
    24         {
    25             if (textBox1.Text == "请输入用户名,格式:qarootdc\jqhuang")
    26             {
    27                 textBox1.Text = "";
    28             }
    29 
    30         }
    31 
    32         private void textBox2_TextChanged_1(object sender, EventArgs e)
    33         {
    34             if (textBox2.Text == "请输入密码")
    35             {
    36                 textBox2.Text = "";
    37             }
    38         }
    39 
    40         private void button1_Click(object sender, EventArgs e)
    41         {
    42             if (isValidUserName(textBox1.Text) == false)
    43             {
    44                 MessageBox.Show("用户名格式不正确!请重新输入!");
    45                 textBox1.Text = "";
    46             }
    47             else 
    48             {
    49                 //用户名格式正确.
    50                 CheckUserAndPwd(textBox1.Text,textBox2.Text);
    51             }
    52         }
    53 
    54         private void CheckUserAndPwd(string username, string pwd)
    55         {
    56             //读取UserInfo.xml检测user是否存在
    57             XDocument userInfo = XDocument.Load(@"C:UsersjqhuangDesktopUserInfo.xml");
    58             var result = from userElement in userInfo.Element("System").Element("users").Elements() where userElement.Element("username").Value.ToString() == textBox1.Text.ToString() select userElement.Element("pwd").Value;
    59             if (result != null)
    60             {
    61                 foreach (var password in result)
    62                 {
    63                     if (password == pwd)
    64                     {
    65                         MessageBox.Show("用户名和密码匹配成功!");
    66                     }
    67                     else
    68                     {
    69                         MessageBox.Show("用户名和密码不匹配,请重新输入密码");
    70                         textBox2.Text = "";
    71                     }
    72                 }
    73             }
    74             else 
    75             {
    76                 MessageBox.Show("您输入的用户不存在!");
    77             }
    78         }
    79 
    80         bool isValidUserName(string userName) 
    81         {
    82             return Regex.IsMatch(userName,@"^.+\.+$");
    83         }
    84     }
    85 }

    运行效果图如下——

    1、用户名不存在的情况:

    /

    2、用户名和密码不匹配的情况:

    3、用户名格式不正确的情况(用正则表达式验证):

    4、用户名和密码匹配成功的情况:

  • 相关阅读:
    loadrunner上传文件到网盘
    robotframework + appium 获取android toast
    jmeter 签名MD5生成
    python appium 封装获取toast方法
    java appium客户端 6.1.0android长按及滑动变更
    父类与子类 构造函数 变量 加载顺序
    检测安卓手机联网方式
    context menu与submenu区别
    div 居中
    ndk的一些概念
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/4433227.html
Copyright © 2011-2022 走看看