已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号:TP311.1 U D C:D10621-408-(2007)6006-0密 级: 公开 编 号:2003031261成都信息工程学院学位论文动态口令认证的网上选课系统的设计与实现论文作者姓名:唐 丹申请学位专业:计算机科学与技术申请学位类别:工 学 学 士指导老师姓名(职称):索 望论文提交日期:2007年6月10日动态口令认证的网上选课系统的设计与实现摘 要将计算机引入教学信息管理已经成为高校教学管理工作的重要内容之一,比如实行网上选课。与传统的选课方式相比,网上选课提高了学生选课效率,增加了学生选课自主权,使教学更加透明,同时大大提高了教务管理工作的效率。本文设计实现的网上选课系统基于ASP.NET平台进行开发,后台由SQL Server 2000数据库支持,通过使用C#语言实现动态网页的效果,达到对数据库的操作以完成使用者的要求。本系统主要由以下几个模块组成:身份验证模块;选课模块;信息管理模块等。用户只需要通过浏览器访问就可以实现选课操作,操作简单灵活。并且本系统登录时使用动态口令进行身份认证,解决了静态口令所遇到的很多攻击性问题,如:网络数据流窃听、字典攻击、穷举攻击等,增加了系统安全性。关键词:网上选课系统; 动态口令;C#;ASP.NETDesign and Implementation of Web-based Course Selecting System with Dynamic Password AuthenticationAbstractApplying computer to manage the teaching information is one of the important parts of the university management, such as course selecting on internet. Comparing to the traditional course selecting method, course selecting on internet saves more resources, at the same time, it enhances the students independence when choosing courses, which makes the teaching more transparent, also greatly increases the efficiency of teaching management.This paper designs a Web-based Elective System, which bases on the platform of ASP.NET; the database is SQL Server 2000. We use C# language to achieve the front page movement effect. This system mainly is composed of following several modules: ID authenticating module; course selecting module; information management module. The user just through IE explore to realize the course selecting operation, the operation is simple and flexible. This system adopts Dynamic Password to authenticate ID when login in, it prevents many problems of the static password, for example Sniffer, Dictionary attack, Brute Force and so on. The Dynamic Password improves the safety of the system.Key words: Online Course Selecting System; Dynamic Password; C#; ASP.NET目 录论文总页数:24页1引言12理论基础12.1 C#12.2 ASP.NET12.3动态口令23需求分析33.1该设计要完成的功能33.2设计思路44总体设计74.1功能模块构造74.2功能模块具体介绍84.2.1身份验证模块84.2.2信息管理模块84.2.3选课模块84.3 E-R图94.4数据库设计95详细设计和实现125.1连接数据库125.2初始化动态口令125.3管理员/老师/学生登录功能135.4管理员/学生/老师密码管理功能175.5老师信息的添加、删除、修改175.6管理员为老师分配课程185.7学生选课195.8老师查看选课名单215.9退出系统22结论22参考文献22致 谢23声 明241引言随着学校的办学规模越来越大,在校学生人数也日益增多,随之而来的是教务管理工作日趋复杂繁重,已愈来愈成为学校日常管理工作的一个瓶颈。网上选课系统可以提高教务管理工作的效率,减轻教务管理人员的手工劳动,使教务管理工作更加规范化、信息化、制度化和科学化。本系统力求以更加安全便捷的办公效率,成为学校教务管理的好帮手。本系统是采用B/S(Browser/Server)结构进行设计,使用SQL Server 2000构建数据库,并在ASP.NET环境下使用C#语言开发的一个网上选课系统,其具有一定的实用性。管理员在网上公布将开设的所有课程信息,包括:课程名称,开课老师,学时,最大人数等信息。学生通过任何一台能进入选课系统的计算机,打开选课网站,输入学号和自己的密码,验证了身份便可轻松完成网上选课工作。学生通过上网了解课程的各项信息,确定自己所要选修的课程,并进行选择,还可以增加选课,退出已选的课程,查看个人选课等。在整个选课过程中,当一门课程的学生人数已满时,下一个学生选择该门课时,这门课便不能被选上。网上选课提高了学生选课效率,同时大大提高了教务管理工作的效率。为了增加系统的安全性,本系统在登录时使用动态口令进行身份认证,在密码中引入迭代值,每次登录时密码的加密次数都不一样,因此每次传输的密码都不一样,即使被窃听了,窃听者也无法用窃听到的口令来做下一次的登录。2理论基础2.1 C#C#是一种简单的、现代的、面向对象的、类型安全的、版本控制的、兼容的、灵活的、基于组件开发的编程语言,它是作为Visual Studio中的一部分推出。C#既保持了C+中熟悉的语法,还包含了大量的高效代码和面向对象特性,它简化和革新了C+中的类、名字空间、方法重载和异常处理等领域,摒弃了C+的复杂性,更易用,更少出错。它不仅能应用于WEB服务程序的开发,并且还能开发强大的系统级程序。C#提供了方便的功能,如垃圾收集、类型安全、版本控制等等。仅有的代价就是,代码操作默认是类型安全,不允许指针。光是类型安全就可以搞定了。但是,如果我们需要指针,仍可以通过非安全码使用它们,而且当调用非安全码时,不能含有列集。2.2 ASP.NETASP.NET 不仅仅是 Active Server Page (ASP) 的下一个版本;它还提供了一个统一的 Web 开发模型,其中包括开发人员生成企业级 Web 应用程序所需的各种服务。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。ASP.NET 可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。当创建 ASP.NET 应用程序时,开发人员可以使用 Web 窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义。ASP.NET包括:页面和控件框架、ASP.NET编译器、安全基础结构、状态管理功能、应用程序配置、监视运行状况和性能功能、调试支持、XML Web services框架、可扩展的宿主环境和应用程序生命周期管理、可扩展的设计器环境。2.3动态口令一次性动态口令系统是关于网络安全的口令系统。它的特点是用户每次输入的口令一样,但传输到服务器的口令都不一样。每个登录服务器的口令只使用一次,窃听者无法用窃听到的口令来做下一次的登录,确保了口令的安全。动态口令与传统的静态口令相比具有以下优势 :(1)动态性: 用户的动态口令随设定的时间或事件等变量自动变化,无需人工干预,某一时刻的产生的动态口令不能在其他时刻使用。(2)一次性:任一时刻产生的动态口令在其失效前只能被用户使用一次,否则,系统将视其为非法行为而报警。(3)随机性:动态口令是随机生成、无规律的。即使本次口令被窃听成功,也难以由此猜出下次的口令。 (4)多重安全性:用户的动态口令令牌产生的动态口令与用户名、静态口令等多因素结合实现多重认证。即使电子令牌丢失,用户仍可在应急状态下利用用户名和静态口令进行用户身份认证。而其他非法持有者,单靠令牌无法实现登录及认证。 (5)可管理性:统一的身份认证方式和动态口令生成方式,能大大减小在分发密码、支持服务、密码丢失、密码更改及身份管理等各个方面的开销和成本。S/KEY口令序列认证方案介绍:贝尔通信研究中心于1991年开发的S/KEY是OPT(one-time password)的首次实现。认证步骤:(1) 用户向服务器发送登录请求,并将用户ID发送给服务器;(2) 服务器收到登录请求和用户ID后,在认证数据库中查询该ID是否存在。若ID为非法ID,则拒绝此次请求;若ID为合法ID,则从数据库中取出相对应的种子Seed和迭代次数(Seq-i),并将这两个数据传送给客户端; (3) 客户端收到种子数Seed和迭代次数(Seq-i)后,利用客户端的计算程序计算Hn(Seed/PW),(其中nSeq-i),并将计算结果作为认证数据发送给服务器; (4) 服务器收到认证数据后,用服务器端的计算程序(与客户端计算程序使用同样的Hash算法)计算H(HSeq-i(Seed/PW),然后将此计算结果与数据库中存储的认证数据HSeq-i+1(Seed/PW)相比较。若两者相同,则认证通过,用户成功登录;否则,认证失败,服务器拒绝用户的登录请求。(5) 若服务器通过了对用户的身份认证,将用收到的HSeq-i(Seed/PW)替换数据库中保存的HSeq-i+1(Seed/PW),以便下一次认证使用。3需求分析3.1该设计要完成的功能本次设计所要实现的功能主要有以下几点:(一):学生操作1.身份验证:输入学生学号及密码,然后点击“登录”进入“选课系统的菜单页,开始选课。2.选课操作以及选课结果查询操作:学生可以选课,修改已选的课程,并且查看自己选课结果。在整个选课过程中,当一门课程的学生人数已满时,下一个学生选择该门课时,这门课将不被选中。(二):管理员操作1.身份验证:输入用户名和密码,然后点击“登录”,进入选课系统后台的管理信息系统。2.基本信息录入及修改。包括课程信息,老师信息以及学生信息等。(三):老师操作1.身份验证:输入用户名和密码,然后点击“登录”,进入自己任课菜单页,老师可以查看自己所教课程、每门课的选课学生名单。3.2设计思路本系统从学生网上自主选课以及管理员管理信息两个大方面进行设计,要基本实现学生的在线选课功能以及管理员对老师、学生、课程信息的管理等功能,并且登录时在口令中引入不确定因数,使每次登录传送的口令信息不同,增加系统安全性。登录分三个身份:学生、老师、管理员,登录成功后分别进入不同页面,学生进入“Choose.aspx”页面,老师进入“tlview.aspx”页面,管理员进入“Lession.aspx”页面。学生进入页面后可以选课、查看自己选课、修改密码;老师进入页面后可以查看自己所任课程、选课名单、修改密码;管理员进入页面后可以管理各种信息,如:管理员、老师、学生等,可以修改自己的密码。动态口令的主要思路是:在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。例如:登录密码=MD5(随机数+密码),系统接收到登录口令后做一个验算即可验证用户的合法性。当用户向服务器发出连接请求时,服务器发给用户一个challenge。challenge通常是由两部分组成的:种子值(seed)和迭代值(iteration),它们是在添加用户时产生的,用户收到challenge后进行加密计算:MD5iteration(seed+password),并把结果作为回答返回服务器。服务器收到回答,将它再次加密后与所存密码比较,如果相同就成功登录,并更新密码为MD5iteration(seed+password),迭代值为(iteration-1)。 我们可以看出,用户通过网络传给服务器的口令是种子值和密码的加密结果,用户本身的密码并没有在网上传播。攻击者很难从中提取出原始的密码,又因为迭代值总是不断变化的,这使得下一次用户登录时使用的鉴别信息与上次不同,从而有效地阻止了重放攻击。总之,与静态口令技术的单因子(口令)鉴别不同,一次性动态口令技术是一种多因子(种子值,迭代值和密码)鉴别技术,其中引入的不确定因子使得它更为安全。管理员添加各类用户时初始化口令流程:图1 初始化口令流程图用户登录时验证口令流程:图2 登录时验证口令流程4总体设计4.1功能模块构造动态口令认证的网上选课系统信息管理身份验证选课教师信息的添加、修改、删除学生信息的添加、修改、删除课程信息的添加、修改、删除系的添加、修改、删除专业的添加、修改、删除学历的添加、修改、删除查看课程选课查看选课名单密码修改课程分配管理员信息的添加、修改、删除图3 系统功能模块图4.2功能模块具体介绍4.2.1身份验证模块通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,如果合法则转入对应的操作界面。在本系统中,只有三种身份:学生、老师、管理员。登录时在口令中引入不确定因数,使每次登录传送的口令信息不同。4.2.2信息管理模块管理员管理模块:负责管理管理员的基本信息。管理员可通过本模块实现添加、删除、修改管理员的基本信息。老师管理模块:负责管理老师的基本信息。管理员可通过本模块实现添加、删除、修改老师的基本信息,可以选择根据老师工作证号或姓名查找老师。在该模块中可以实现对老师的管理,为排课提供老师的基本信息。学生管理模块:负责管理学生的基本信息。管理员可通过本模块实现添加、删除、修改学生的基本信息,可以选择根据学生学号或姓名查找学生。在该模块中可以实现对学生的管理。 课程管理模块:负责管理课程的基本信息。管理员可通过本模块实现课程的添加、删除、修改,可以选择按课程名或专业查询已经添加的课程。系别管理模块:负责管理系别的基本信息。管理员可通过本模块实现系别的添加、删除、修改。专业管理模块:负责管理专业的基本信息。管理员可通过本模块实现专业的添加、删除、修改,可以按系查询已经添加的专业。学历管理模块:负责管理学历的基本信息。管理员可通过本模块实现学历的添加、删除、修改。 课程分配模块:负责给老师分配课程。根据老师姓名,课程所属系、专业,给老师分配课程。老师可以教不同系的课程。密码修改模块:管理员、老师、学生登录成功后在各自的页面点击“修改密码”进行密码修改。4.2.3选课模块查看课程选课模块:学生登录后进入选课页面,在规定时间内可以进行选课、退选,选择人数已满的课程时,该课程不能被选上,学生可以查看自己已选课程。查看选课名单模块:老师登录后可以根据自己所教课程查看选课名单,只有学生选择了的课程才会显示。4.3 E-R图图4 E-R图4.4数据库设计根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出以下数据项和数据表:表1 课程表Lessions(课程)数据库字段名中文名字段类型是否为空备注LessionID(主键)课程IDInt否从1开始自动增长,以后有“Auto”表示GradeMark年级Varchar(10)否LessionName课程名Varchar(200)否LessionIsChoose是否可选Bit否1表示是0表示否(默认为0)LessionChooseStartDate选课开始时间Dataetime否LessionChooseEndDate选课结束时间Dataetime否LessionMaxPerson选课最多人数Int否LessionAddDate课程添加时间Datetime否LessionTimeLength课时Int否LessionDescription课程备注Text是StudyDepartmentID专业IDInt否关系表(StudyDepartments)LessionIsMain是否为必修bit否表2 老师表Teachers(老师)数据库字段名中文名字段类型是否为空备注TeacherID(主键)老师IDInt否AutoTeacherNumber老师的工作证号Varchar(20)否TeacherName老师名称Varchar(50)否TeacherUerName老师昵称Varchar(50)否TeacherPassword登陆密码Varchar(100)否TeacherAddDate老师添加时间Datetime否DepartmenID系IDInt否关系表(Departmens)TeacherState老师状态Int否0(在职)2(离职)TeacherMvaxLessionCount老师在一学期内最多可授课门数Int否默认为5门表3 学生表Students(学生)数据库字段名中文名字段类型是否为空备注StudentID(主键)学生IDInt否AutoStudentNumber学号Varchar(20)否StudentName学生名称Varchar(50)否StudentUerName学生昵称Varchar(50)否StudentPassword登陆密码Varchar(100)否StudentAddDate学生入学时间Datetime否StudentEndDate学生毕业时间Datetime否StudyDepartmentID专业IDInt否关系表(StudyDepartments)StudentState学生状态Int否1(休学1年)2(休学2年)3(休学3年)4(在校)5(毕业)6(开除学籍)StudyTypeID系IDInt否StudentYearCount学年数Int否StudentExtendID学生扩展信息IDInt否默认为0,表示没有扩展信息,大于0就关系到表(StudentExtends)表4老师 课程 联系表LessionTeachers (老师 课程 联系表)数据库字段名中文名字段类型是否为空备注LessionTeacherID(主键)联系编号Int否AutoTeacherID老师IDInt否关系表(Teachers)LessionID课程IDInt否关系表(Lessions)表5学生 课程 联系表LessionStudents(学生 课程 联系表)数据库字段名中文名字段类型是否为空备注LessionStudentID(主键)联系编号Int否AutoStudentID学生IDInt否关系表(Students)LessionID课程IDInt否关系表(Lessions)管理员表(Managers):存放管理员ID、姓名、编号、密码、添加时间、昵称。学生扩展信息表(StudentExtends):存放扩展ID、民族ID、性别、生日、照片ID、身份证号、备注。系别表(Departments):存放系ID、系名、备注。专业表(StudyDepartment):存放专业ID、系ID、专业名、备注。年级表(Grades):存放年级ID、年级名、年级标识。民族表(Races):存放民族ID、民族名。学历表(StudyTypes):存放学历ID、学历名、学历标识。学生密码表(StudentPassword):存放学生ID、迭代值、随机值。老师密码表(StudentPassword):存放老师ID、迭代值、随机值。管理员密码表(TeacherPassword):存放管理员ID、迭代值、随机值。5详细设计和实现5.1连接数据库所有页面都要连接数据库,代码为:在Web.Config里添加: 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.Rows0.ItemArray.GetValue(0).ToString(); dsTeacherPassword.Insert(int.Parse(id), 9999, TeacherSeed);5.3管理员/老师/学生登录功能在登录页面对应的地方输入用户名、密码,确认后登录。在提交后的文件中,首先通过学号/工作证号对数据库中的Managers /Students/Teachers表进行检索,若检索到的记录集为空,则说明学号/工作证号错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,通过动态密码算法和数据库中的ManagerPassword /StudentPassword/TeacherPassword看密码是否相等,不相等,做出错处理,相等则转入管理员/学生/老师登录成功的操作页面。出错及处理:在该模块中可能发生的错误有:(1)、用户名或密码错误,系统提示“用户名或密码不正确!”。(2)、捕捉到异常,系统提示“对不起,登录失败,请重新登陆!”。学生登录身份验证是在switch (rbtnlLogType.SelectedValue)中加如下代码:case 0: /当身份为0,即学生时 try DsStudentTableAdapters.StudentsTableAdapter dsStudent = new DsStudentTableAdapters.StudentsTableAdapter(); /实例化类 DsPassWordTableAdapters.StudentPasswordTableAdapter dsStudentPassword = new DsPassWordTableAdapters.StudentPasswordTableAdapter(); /实例化类 DataTable dtStudentID = dsStudent.A_GetStudentByStudentNumber(txtNumber.Text); /通过类的实例dsStudent的方法A_GetStudentByStudentNumber得到学号为txtNumber.Text的学生的所有字段的值 string StudentID = dtStudentID.Rows0.ItemArray.GetValue(0).ToString(); /得到该学生的ID,并赋值给StudentID string StudentAddDate = dtStudentID.Rows0.ItemArray.GetValue(5).ToString(); string StudentEndDate = dtStudentID.Rows0.ItemArray.GetValue(6).ToString(); string StudyDepartmentID = dtStudentID.Rows0.ItemArray.GetValue(7).ToString(); string StudentState = dtStudentID.Rows0.ItemArray.GetValue(8).ToString(); string StudyTypeID = dtStudentID.Rows0.ItemArray.GetValue(9).ToString(); string StudentYearCount = dtStudentID.Rows0.ItemArray.GetValue(10).ToString(); string StudentExtendID = dtStudentID.Rows0.ItemArray.GetValue(11).ToString(); DataTable dtStudent = dsStudentPassword.C_GetStudentPasswordByID(int.Parse(StudentID); string StudentSeq = dtStudent.Rows0.ItemArray.GetValue(1).ToString(); string StudentSeed = dtStudent.Rows0.ItemArray.GetValue(2).ToString(); string StudentPassword = StudentSeed.ToString() + txtPassWord.Text; /将StudentSeed.ToString()和txtPassWord.Text连接起来赋值给StudentPassword,作为要加密的密码 int StudentSeq1; for (StudentSeq1 = int.Parse(StudentSeq); StudentSeq1 0; StudentSeq1-) StudentPassword = Encode.EncodeByMD5_32(StudentPassword); /加密过程,将密码加密int.Parse(StudentSeq)次 DsLogTableAdapters.LogInfoTableAdapter dalLogInfo = new DsLogTableAdapters.LogInfoTableAdapter(); DataTable dtLogInfo = dalLogInfo.A_GetLogInfo(txtNumber.Text, StudentPassword, int.Parse(rbtnlLogType.SelectedValue); /使用dalLogInfo.A_GetLogInfo方法验证登录,找到学生就写相应字段到表dtLogInfo中 if (dtLogInfo.Rows.Count =1) /如果行数等于1,通过验证 SetCookie(Number, txtNumber.Text); SetCookie(Password, StudentPassword); SetCookie(UserID, dtLogInfo.Rows0UserID.ToString(); SetCookie(RealName, dtLogInfo.Rows0RealName.ToString(); SetCookie(UserName, dtLogInfo.Rows0UserName.ToString(); SetCookie(UserType, rbtnlLogType.SelectedValue); /保存用户信息到Cookie lblInfo.Visible = true;/显示提醒信息框 lblInfo.Text = 登录成功!;/设置要显示的提醒信息 dsStudent.Update(GetCookie(Number), GetCookie(RealName), GetCookie(RealName), StudentPassword, DateTime.Parse(StudentAddDate), DateTime.Parse(StudentEndDate), int.Parse(StudyDepartmentID), int.Parse(StudentState), int.Parse(StudyTypeID), int.Parse(StudentYearCount), int.Parse(StudentExtendID), int.Parse(StudentID),int.Parse(StudentID); /更新Students表中该学生字段值 int StudentSeq2 = int.Parse(StudentSeq) - 1; dsStudentPassword.Update(int.Parse(StudentID), StudentSeq2, int.Parse(StudentSeed), int.Parse(StudentID);/更新StudentPassword表中该学生字段值 Response.Redirect(Choose.aspx, false); /跳到Choose.aspx页面 else string LogInfo = 用户名或密码不正确!; lblInfo.Visible = true;/显示提示框内容 lblInfo.Text = LogInfo; /设置提示框内容 return; /验证未通过,则显示提示信息用户名或密码不正确! catch (Exception ex) GoErrorPage(ex, 对不起,登录失败,请重新登陆!); /捕获到异常,写错误日志,并跳到出错页面显示对不起,登录失败,请重新登陆! break; /退出switch语句在登录过程中实现了动态口令身份认证,通过数据表中密码的变化能得到验证。如下两图:图5 用户“夏雨”第4次登录数据表截图图6 用户“夏雨”第5次登录数据表截图5.4管理员/学生/老师密码管理功能密码管理的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。转入执行的文件后,首先根据传递的学号/工作证号判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新Managers/Students/Teachers中的“ManagerPassword”/ “StudentPassword”/“TeacherPassword”字段,并返回登录页面。出错及处理:在该模块中可能发生的错误有:新密码两次输入不同,系统提示“新密码不一致,请重新输入!”。5.5老师信息的添加、删除、修改老师信息的添加、删除、修改由管理员完成,老师无权操作。在管理员登录成功后点击“老师管理”即进入老师信息页面。添加老师:具体操作为对数据库添加新记录。点击“添加老师”按钮进入添加老师页面,在添加页面输入新老师的信息。当添加的记录已经存在时,提示框显示“已经有相同的工作号存在!”;若为新记录,则进行新记录的添加,添加到表的最后。出错及处理:重复添加,弹出提示框:“已经有相同的工作号存在!”。图7 添加老师页面截图修改老师信息:在老师信息页面中点击该老师后面的“修改”进入修改页面(实际同添加老师页面),在文本框中输入完整信息后进行覆盖写入,操作与添加大致相同。删除老师:在老师信息页面中点击该老师后面的“删除”,弹出注意框“你真的要删除吗?”,在“确定”和“取消”间选择。学生信息、课程信息、系、专业、学历的添加、删除、修改与老师信息的添加、删除、修改相同,不再赘述。5.6管理员为老师分配课程管理员给老师分配课程,选择老师姓名,课程名及课程所属系、专业,按添加按钮,提示分配成功。按“删除”弹出注意框“你确认你要进行这个操作吗?”,在“确定”和“取消”间选择。老师可以教不同系的课程。在此页面用到了BindGvlist方法,绑定GridView,代码如下:public void BindGvlist()/声明方法:名称为BindGvlist,无返回值 try dsLessionTeachersTableAdapters.LessionTeachersTableAdapter lessionteacherDAL = new dsLessionTeachersTableAdapters.LessionTeachersTableAdapter();/实例化类DataTable dt= lessionteacherDAL.C_SelectLessionTeachers();/定义内存中数据的一个表,名字为dt,由实例化类lessionteacherDAL中C_SelectLessionTeachers方法获得的值填充 gvlist.DataSource =dt.DefaultView; gvlist.DataBind(); /绑定GridView catch (Exception ex) GoErrorPage(ex.ToString(); /捕获到异常就跳到出错页面 图8 为老师分配课程页面截图5.7学生选课学生进入选课页面后会有该生所在专业的、选课时间包含了当时所在时间的课程。该生已选的课程显示蓝色,在选课时间内可以退选;人数已满课程为红色,不能再选;其它为白色。点击“查看”按钮可以看到自己已选课程。在该页面用到了BasePage类中验证是否登录的方法CheckLog(),方法如下:private bool CheckLog() /声明方法:名称为CheckLog,返回值类型为bool(true/false) DsLogTableAdapters.LogInfoTableAdapter dsCheckLogin = new DsLogTableAdapters.LogInfoTableAdapter(); /实例化类 if (GetCookie(UserType) != 1 & GetCookie(UserType) != 0 & GetCookie(UserType) != 2) return false; / Cookie中UserType如果不等于0/1/2,返回false DataTable dt = dsCheckLogin.A_GetLogInfo(GetCookie(Number) ,GetCookie(Password), int.Parse( GetCookie(UserType); /当 Cookie中UserType等于0/1/2,取出保存的Cookie中Number、Password、UserType的值,放入数据表dt中 if (dt.Rows.Count = 1) return true; /如果值存在,返回true,已经登录 return false; /否则,返回false,未登录 public void CheckLogin()/声明方法:名称为CheckLogin,返回值类型为void,即不返回值 if (!Ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋交易终止合同范本
- 农村土地出售合同书样本
- 停车场租赁合同协议书范文
- 2024养殖场土地承包合同
- 股票投资代持协议书
- 2024年彩钢瓦安装合同书
- 2024产权转让居间合同协议书
- 工程机械运输合同模板
- 个人之间专利权转让协议范本
- 2024年按揭房屋归女方离婚协议书
- 2024全球量子产业发展报告
- 场地移交安全管理协议书
- 医院卒中中心建设各种制度、流程汇编
- 重庆市江北区2023-2024学年六年级下学期期末考试数学试题
- 军队文职聘用合同管理规定
- 2024年贵州省安顺市西秀区小升初语文试卷
- 2024-2029年中国儿童牙冠行业市场现状分析及竞争格局与投资发展研究报告
- 新时代铁路发展面对面全文内容
- 人工智能与语文阅读理解教学
- 科学素养培育及提升-知到答案、智慧树答案
- 快递主管岗位职责
评论
0/150
提交评论