自学内容网 自学内容网

ASP.NET动态口令认证的网上选课系统的设计与实现

摘    要

将计算机引入教学信息管理已经成为高校教学管理工作的重要内容之一,比如实行网上选课。与传统的选课方式相比,网上选课提高了学生选课效率,增加了学生选课自主权,使教学更加透明,同时大大提高了教务管理工作的效率。

本文设计实现的网上选课系统基于ASP.NET平台进行开发,后台由SQL Server 2000数据库支持,通过使用C#语言实现动态网页的效果,达到对数据库的操作以完成使用者的要求。本系统主要由以下几个模块组成:身份验证模块;选课模块;信息管理模块等。用户只需要通过浏览器访问就可以实现选课操作,操作简单灵活。并且本系统登录时使用动态口令进行身份认证,解决了静态口令所遇到的很多攻击性问题,如:网络数据流窃听、字典攻击、穷举攻击等,增加了系统安全性。

关键词:网上选课系统; 动态口令;C#;ASP.NET

2.1 C#

C#是一种简单的、现代的、面向对象的、类型安全的、版本控制的、兼容的、灵活的、基于组件开发的编程语言,它是作为Visual Studio中的一部分推出。C#既保持了C++中熟悉的语法,还包含了大量的高效代码和面向对象特性,它简化和革新了C++中的类、名字空间、方法重载和异常处理等领域,摒弃了C++的复杂性,更易用,更少出错。它不仅能应用于WEB服务程序的开发,并且还能开发强大的系统级程序。

2.2 ASP.NET

ASP.NET 不仅仅是 Active Server Page (ASP) 的下一个版本;它还提供了一个统一的 Web 开发模型,其中包括开发人员生成企业级 Web 应用程序所需的各种服务。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。

2.3动态口令

一次性动态口令系统是关于网络安全的口令系统。它的特点是用户每次输入的口令一样,但传输到服务器的口令都不一样。每个登录服务器的口令只使用一次,窃听者无法用窃听到的口令来做下一次的登录,确保了口令的安全。

4.1功能模块构造

图3  系统功能模块图

4.2功能模块具体介绍

4.2.1身份验证模块

通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,如果合法则转入对应的操作界面。在本系统中,只有三种身份:学生、老师、管理员。登录时在口令中引入不确定因数,使每次登录传送的口令信息不同。

4.2.2信息管理模块

管理员管理模块:负责管理管理员的基本信息。管理员可通过本模块实现添加、删除、修改管理员的基本信息。

老师管理模块:负责管理老师的基本信息。管理员可通过本模块实现添加、删除、修改老师的基本信息,可以选择根据老师工作证号或姓名查找老师。在该模块中可以实现对老师的管理,为排课提供老师的基本信息。

学生管理模块:负责管理学生的基本信息。管理员可通过本模块实现添加、删除、修改学生的基本信息,可以选择根据学生学号或姓名查找学生。在该模块中可以实现对学生的管理。

课程管理模块:负责管理课程的基本信息。管理员可通过本模块实现课程的添加、删除、修改,可以选择按课程名或专业查询已经添加的课程。

系别管理模块:负责管理系别的基本信息。管理员可通过本模块实现系别的添加、删除、修改。

专业管理模块:负责管理专业的基本信息。管理员可通过本模块实现专业的添加、删除、修改,可以按系查询已经添加的专业。

学历管理模块:负责管理学历的基本信息。管理员可通过本模块实现学历的添加、删除、修改。

课程分配模块:负责给老师分配课程。根据老师姓名,课程所属系、专业,给老师分配课程。老师可以教不同系的课程。

密码修改模块:管理员、老师、学生登录成功后在各自的页面点击“修改密码”进行密码修改。

4.2.3选课模块

查看课程选课模块:学生登录后进入选课页面,在规定时间内可以进行选课、退选,选择人数已满的课程时,该课程不能被选上,学生可以查看自己已选课程。

查看选课名单模块:老师登录后可以根据自己所教课程查看选课名单,只有学生选择了的课程才会显示。

5.1连接数据库

所有页面都要连接数据库,代码为:

在Web.Config里添加:

<add name="ACLConnectionString"      

connectionString="Data Source=(Local);   

Initial Catalog=ACL;user id=sa;password=123456;"  

providerName="System.Data.SqlClient"/>  

5.2初始化动态口令

在管理员添加用户时初始化动态口令。老师的口令初始化代码如下:

DsTeacherTableAdapters.TeachersTableAdapter dsTeacher = new DsTeacherTableAdapters.TeachersTableAdapter();

    DsPassWordTableAdapters.TeacherPasswordTableAdapter dsTeacherPassword = new DsPassWordTableAdapters.TeacherPasswordTableAdapter();

int TeacherSeq = 10000;

Random rm = new Random();

    int TeacherSeed = rm.Next(1, 99999);

    string Password = TeacherSeed.ToString() + txtTeacherNumber.Text;

    for (; TeacherSeq > 0; TeacherSeq--)

    {

       Password = Encode.EncodeByMD5_32(Password);

    }

    dsTeacher.Insert(txtTeacherNumber.Text.Trim(), txtTeacherName.Text, txtTeacherName.Text, Password,

    DateTime.Now, int.Parse(ddlDepartment.SelectedValue), int.Parse(ddlTeacherState.SelectedValue), int.Parse(txtTeacherMvaxLessionCount.Text));

    DataTable testdt = dsTeacher.A_GetTeacherByNumber(txtTeacherNumber.Text);

    string id = testdt.Rows[0].ItemArray.GetValue(0).ToString();

 dsTeacherPassword.Insert(int.Parse(id), 9999, TeacherSeed);

5.3管理员/老师/学生登录功能

在登录页面对应的地方输入用户名、密码,确认后登录。在提交后的文件中,首先通过学号/工作证号对数据库中的Managers /Students/Teachers表进行检索,若检索到的记录集为空,则说明学号/工作证号错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,通过动态密码算法和数据库中的ManagerPassword /StudentPassword/TeacherPassword看密码是否相等,不相等,做出错处理,相等则转入管理员/学生/老师登录成功的操作页面。

5.4管理员/学生/老师密码管理功能

密码管理的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。转入执行的文件后,首先根据传递的学号/工作证号判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新Managers/Students/Teachers中的“ManagerPassword”/ “StudentPassword”/“TeacherPassword”字段,并返回登录页面。

5.5老师信息的添加、删除、修改

老师信息的添加、删除、修改由管理员完成,老师无权操作。在管理员登录成功后点击“老师管理”即进入老师信息页面。

5.6管理员为老师分配课程

管理员给老师分配课程,选择老师姓名,课程名及课程所属系、专业,按添加按钮,提示分配成功。按“删除”弹出注意框“你确认你要进行这个操作吗?”,在“确定”和“取消”间选择。老师可以教不同系的课程。

5.7学生选课

学生进入选课页面后会有该生所在专业的、选课时间包含了当时所在时间的课程。该生已选的课程显示蓝色,在选课时间内可以退选;人数已满课程为红色,不能再选;其它为白色。点击“查看”按钮可以看到自己已选课程。

5.8老师查看选课名单

老师登录后可以看到管理员分配给自己的又被学生选择了的课程,点击“查看选课的学生”可以看到选该门课的所有学生,点击该学生后面的“查看该生选课”可以看到该学生所选的全部课程。

5.9退出系统

管理员、老师、学生退出系统后都返回到登录页面,用户保存在浏览器客户端的信息将被清空。


原文地址:https://blog.csdn.net/shmp54xmu/article/details/137548748

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!