上位机学习记录编写用户登录模块

Posted 聆听微风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上位机学习记录编写用户登录模块相关的知识,希望对你有一定的参考价值。

上位机学习记录(3)编写用户登录模块

(一)业务逻辑说明

FrmLogin界面的cmb_LoginName控件进行数据绑定,通过SysAdminService.GetAllAdminDB()获取到所有的用户信息

(二)界面初始化逻辑

登陆逻辑:

  1. Program.cs: 先调用FrmLogin界面,当FrmLogin完成登陆验证后返回ok,然后启动FrmMain主界面
  2. FrmLogin.cs:
    1. 将数据封装为Admin对象
    2. 传入SysAdminService方法
    3. 当SysAdminService查询,查询到返回对象;查询不到返回null
    4. FrmLogin检测Admin对象是否为null,当不为空,返回ok;为null,调用FrmConfirmSingle弹出错误对话框

登陆界面美化:

  1. 登陆页面使用无边框。
  2. 可以使用鼠标进行拖动

代码展示:

SysAdminService.cs

   public  class SysAdminService
    
        /// <summary>
        /// 返回所有的用户对象
        /// </summary>
        /// <returns>用户对象集合</returns>
        public static List<SysAdmin> GetAllAdminDB()
        
            return SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c=>c.LoginName.ToLower()!="admin").ToList();      
        

        /// <summary>
        /// 验证用户登录结果
        /// </summary>
        /// <param name="admin">用户对象</param>
        /// <returns>用户对象</returns>
        public static SysAdmin AdminLogin(SysAdmin admin)
        
            var list= SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c => c.LoginName==admin.LoginName&&c.LoginPwd==admin.LoginPwd).ToList();

            return list.Count == 0 ? null : list[0];
        
     

SqlSugarService.cs

    public class SqlSugarService
    
        public static void SetConnectionString(string ConnectionString)
        
            SqlSugarHelper.ConnectionString = ConnectionString;
        

    

SysAdmin.cs

   public class SysAdmin
    
        public int LoginID  get; set; 

        public string LoginName  get; set; 

        public string LoginPwd  get; set; 

        public int Role  get; set; 

    

FrmLogin.cs (LoginPwd使用了md5加密)

   public partial class FrmLogin : Form
    
        public FrmLogin()
        
            InitializeComponent();
        

        private void FrmLogin_Load(object sender, EventArgs e)
        
            this.cmb_LoginName.DataSource = SysAdminService.GetAllAdminDB();

            this.cmb_LoginName.DisplayMember = "LoginName";
        

        private void btn_Login_Click(object sender, EventArgs e)
        
            //验证

            if (this.txt_LoginPwd.Text.Trim().Length == 0)
            
                new FrmConfirmSingle("登录提示", "请输入密码!")  TopMost = true .ShowDialog();
                this.txt_LoginPwd.Focus();
                return;
            

            //封装
            SysAdmin objAdmin = new SysAdmin()
            
                LoginName = this.cmb_LoginName.Text,
                LoginPwd = AuthorizationHelper.Encrypt(this.txt_LoginPwd.Text.Trim())
            ;

            objAdmin = SysAdminService.AdminLogin(objAdmin);

            if (objAdmin == null)
            
                new FrmConfirmSingle("登录提示", "用户名或密码错误!")  TopMost = true .ShowDialog();
            
            else
            
                CommonMethod.sysAdmin = objAdmin;

                this.DialogResult = DialogResult.OK;
            

        

        private void MainPanel_DoubleClick(object sender, EventArgs e)
        
            this.Close();
        


        Point mPoint;

        private void MainPanel_MouseDown(object sender, MouseEventArgs e)
        
            mPoint = new Point(e.X, e.Y);
        

        private void MainPanel_MouseMove(object sender, MouseEventArgs e)
        
            if (e.Button == MouseButtons.Left)
            
                this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
            
        


        private void txt_LoginPwd_KeyDown(object sender, KeyEventArgs e)
        
            if (e.KeyCode == Keys.Enter)
            
                this.btn_Login_Click(null, null);
            
        
    

以上是关于上位机学习记录编写用户登录模块的主要内容,如果未能解决你的问题,请参考以下文章

上位机学习日记系统运行日志功能的编写与日志查看功能

怎样用labview编写上位机软件?

C#编写上位机驱动运动控制板卡

上位机学习记录

5-网络芯片CH395Q学习开发-模块使用Socket0作为TCP客户端和电脑上位机TCP服务器局域网通信

匿名上位机的使用(51版)