【毕设】班级管理系统——登录模块

【登录模块介绍】

主要是处理用户的登录,赋予不同用户的不同权限。在登录模块中,系统在安全性上还增设了验证码和限制错误登录次数。主要目的是为了缓解服务器压力以及在一定程度上保护用户隐私。

【界面设计】

【登录错误图解】

限制错误登录次数功能说明:每名用户每次登陆初始时均有三次输入机会,一旦连续输错三次,则禁止再次输入,只能访问普通用户功能;若在一次或两次输错后但成功登陆者,输入机会将会再次重置为三次,以此类推。

【程序流程图】

【部分代码详解】


private string UserA, PwA; //用户名,密码
private static bool checkAvailabled=true;//记录是否可登录
static private int checkTimes=0;//记录错误次数
bool haveuser = true; //用来判断用户名是否存在

private void btnLogin_Click(object sender, EventArgs e)
{
   if (flagSecurityCode) //如果验证码正确
   {
     if (checkAvailabled == true)//如果用户可登录
    {
       //如果登录次数达到3次,则不允许再次登录
    if (checkTimes == 3) { checkAvailabled = false; }
    else
    {
    SqlConnection conCon = new SqlConnection(strCon);
    string cmd = "select Luser,Lpassword from LoginInfo";
    try
    { conCon.Open();
    SqlCommand sc = new SqlCommand(cmd, conCon);
    SqlDataReader reader = sc.ExecuteReader();
    while (reader.Read())//从数据库中读取用户信息
    { UserA = reader["Luser"].ToString();//读取用户名
    PwA= reader["Lpassword"].ToString();//读取密码
    if (UserA.Trim() == txtUser.Text & PwA.Trim() == txtKey.Text)//如果登录成功
    {MainFrm.islogin = true;//将主界面登录标识记为true
    MainFrm.useName = txtUser.Text;//显示主界面用户名
    username = txtUser.Text;//记录用户名
    checkTimes = 0;//将错误次数重置为0
    haveuser = true;//数据库中有该用户名
    break;}
    else if (User == txtUser.Text)//如果仅密码错误
    { MessageBox.Show("密码错误!", "提示");
    MainFrm.islogin = false;
    txtKey.Text = "";
    txtKey.Focus();
    txtSecurityCode.Text = "验证码";
    txtSecurityCode.ForeColor = SystemColors.ScrollBar;
    LoginFrm_Load(sender, e);//重新生成验证码
    checkTimes++;//错误次数加1
    haveuser = true;//数据库中有该用户名
    break;}
    else
    { haveuser = false; }//数据库中无该用户名
    }
    if (MainFrm.islogin == true)
    { this.Close();}//如果登陆成功,则关闭登录窗体
    if (haveuser==false)//如果用户名错误 { MessageBox.Show("用户名错误!", "提示");
    MainFrm.islogin = false;
    txtUser.Text = "";
    txtKey.Text = "请输入密码";
    txtKey.ForeColor = SystemColors.ScrollBar;
    txtKey.UseSystemPasswordChar = false;
    txtSecurityCode.Text = "验证码";
    txtSecurityCode.ForeColor = SystemColors.ScrollBar;
    LoginFrm_Load(sender, e); //重新生成验证码
    txtUser.Focus();
    checkTimes++;
    }reader.Close();
    }
    catch (Exception ex)
    { MessageBox.Show(ex.Message, "操作数据库出错!"); }
    finally
    { conCon.Close(); }//断开数据库连接
    }
    switch (checkTimes) //依据不同登错次数显示相应出错图标
    { case 0: pictureBox2.Visible = false;break;
    case 1: pictureBox2.Visible = true;
    pictureBox2.Image = Image.FromFile(_path + errorImage[0]);
    MainFrm.str = "您已连续输错一次"; break;
    case 2: pictureBox2.Visible = true;
    pictureBox2.Image = Image.FromFile(_path + errorImage[1]);
    MainFrm.str = "您已连续输错两次"; break;
    case 3: pictureBox2.Visible = true;
    pictureBox2.Image = Image.FromFile(_path + errorImage[2]);
    MainFrm.str = "您已连续输错三次不可再输入";
    MessageBox.Show("您已连续输错三次不可再输入", "提示"); break;
    }}}else
    { MessageBox.Show("验证码错误!", "提示");
    txtSecurityCode.Text = "";
    LoginFrm_Load(sender, e);//重新生成验证码
}}

【毕设】班级管理系统——登录模块,布布扣,bubuko.com

时间: 2024-10-09 15:04:56

【毕设】班级管理系统——登录模块的相关文章

【毕设】班级管理系统——找回密码模块

[模块介绍] 首先检测用户是否在登录状态下,若用户在登录状态下,则跳过用户名检测环节,直接进入随机密保验证和修改密码环节,修改成功后,则注销原用户登录.若用户之前并未登陆,则在随机密保验证和修改密码环节之前得先判断段所要修改的用户名是否存在.只有存在后才能进入下一环节.本设计思路来源腾讯QQ密码按密保问题修改.图5.3(a),图5.3(b)和图5.3(c)分别显示用户名检测,随机密保验证和修改密码环节的相关界面. [界面设计] [程序流程图] [核心代码] 相关参数说明: private Lis

【毕设】班级管理系统——系统介绍

[摘要]班级管理系统是利用计算机来管理班级信息的计算机应用技术的创新.在计算机还未普及之前,班级管理都是靠手工实现,这样不仅浪费大量的时间.人力和物力,同时在信息的开放度和同学们的知情度方面不够透明. 针对上述情况,本课题设计了基于ASP.NET的班级管理系统.本系统采用增量模型开发,运用了Winform相关开发技术,使用C#作为开发语言,数据库访问技术兼用ADO.NET和LINQ,同时使用了多项多媒体编程技术如GDI+,Windows Media Player组件等.在功能方面不仅含有数据库传

【毕设】班级管理系统——易搜

[模块介绍] 在易搜中,系统提供了4中搜索方式,按学号搜索,按姓氏搜索,按性别搜索和按全部搜索.若搜索结果单一,系统会跳转到InformationFrm窗体:若搜索结果若干,则系统会跳转到MulInformationFrm窗体.易搜界面设计如下图5.7所示,搜索结果界面如图5.8(a)和图5.8(b)所示. [界面设计] [部分代码(这里以按姓氏搜索为例,代码有删改)] if (txtSearch.Text == "" && cboSearch.SelectedInde

基于Servlet、JSP、JDBC、MySQL的登录模块(含过滤器的使用和配置)

接前文的注册模块,本篇是登录模块.主要包括登录主界面,和登录相关编写的LoginAction.LoginDao和LoginService.以及配置的Filter.下面按逻辑顺序记录详细过程和代码: 一.在前文的index目录点击登录按钮后,通过javascript跳转至LoginAction. <script type="text/javascript"> function login(){ var th = document.form1; if(th.username.v

IDE开发&lt;LER-Studio&gt;(2)::登录模块

软件中写登录模块是为了防止软件的恶意传播,内测阶段可以忽略登录. 以下为登录模块主要源代码: void CLoginDlg::OnBnClickedBtnLogin() { // TODO: Add your control notification handler code here CClerkDataSet lgDataSet; CString strSQL=L""; UpdateData(TRUE); CMFC_Library_RibbonView* pView; pView=

客户管理系统之模块设计(二)

二,主模块设计 主模块设计示例: 上一次提到MDImain窗体,就是这次模块设计的主要设计对象.主模块主要是为管理员起到导航作用,主要分为菜单栏和主体两部分,管理员可根据想要操作的模块,在菜单栏或是在主体中查到对应导航. 主模块中添加一个MenuStrip控件,一个Label控件,一个StatuStrip控件,五个个Panel控件和四个LinkLabel控件,有关MenuStrip控件属性值设置和StatusStrip控件属性值设置可查看对应程序,其他控件和窗体的属性设置文档为: MenuStr

用unix c系统函数实现的的注册登录模块

1 /* 登录模块,密码放在pass.db中*/ 2 #include <stdio.h> 3 #include <unistd.h> 4 #include <fcntl.h> 5 #include <stdlib.h> 6 #include <string.h> 7 #include <stdbool.h> 8 9 typedef struct Person{ 10 char name[20]; 11 char pass[20];

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

用struts做一个带有随机数字的图片验证登录模块

在我们平常的工作中,登录模块有一个小的功能,就是图片验证模块,今天我就把步骤一步一步写出来. 1.新建一个web service,然后再WebRoot写,一个contentType="image/jpeg"格式的image.jsp页面,最后一句代码是将页面以图片输出. 1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <%@ page contentType="im