背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读内容

基于Web的研究生学位信息管理系统开发关键技术

[日期:2008-06-01] 来源:  作者:张晓丽1 史明2 [字体: ]
 摘  要  作者开发的基于Web的 研究 生学位信息管理系统具有数据录入、数据处理、信息查询、信息输出、数据导出等基本功能。介绍了系统体系结构以及开发的关键技术,包括基于窗体身份验证、基于角色的用户管理以及基于存储过程的分页显示技术等。
    关键词  学位信息管理系统;身份验证;用户管理;分页显示
 

1  引言

    研究生学位管理是研究生 教育 的一个重要环节,是一项涉及多学科知识,需多部门协调工作的管理系统工程。它主要完成数据录入、数据处理、信息输出和数据导出等工作。学位管理部门要求:可以从其它部门获取已有的学生信息,也可以手工录入学位信息;数据经过处理后以适当的形式输出相关文件或表格,如学位申请表、授予学位文件、授予学位名单、学位证明等,同时将处理后的数据按一定格式上报教育部。
    针对上述需求,我们开发了基于Web的研究生学位管理信息系统。该系统采用ASP.NET2.0开发平台、C#语言、SQL Server 2000数据库管理系统,在基于Intranet/Intranet的校园网环境下运行。

2  系统设计

    本系统采用三层B/S体系结构,如图1所示,其中:
图1 系统体系结构图
    表示层:相当于用户界面,为客户端提供对整个 应用 程序的访问。在本系统中表示层由ASP.NET Web窗体和代码隐藏文件组成。在.aspx文件中只有html代码和服务器控件,在页面程序代码文件(.cs文件)中调用.dll组件中的数据库操作 方法 ,返回满足条件的结果。
中间层:是整个系统的核心部分,担当主要的应用处理,包括处理表示层的HTTP请求以及对数据库的访问。
    在设计系统时,我们把应用程序中的业务逻辑放在中间层应用服务器上,这样业务逻辑和用户界面分开。如果要修改应用程序代码,只须对应用服务器进行修改,而不用修改成千上万的客户端应用程序。同时由于Asp.Net只支持面向对象,组件也可以看作类,因此可以在Web项目中添加对数据库操作的组件,并将其编译为.dll,这样就把数据库的操作过程封装起来,便于代码的安全管理和维护。因此,我们把中间层进一步分解为业务外观、业务规则、数据访问等层进行处理,并且把它们封装在了独立的.dll组件中。
    其中,业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来,它除了为表示层提供服务,还可以访问业务规则和数据访问层,是系统的公共入口点。业务规则层包含了各种业务规则和逻辑的实现。数据访问层为业务外观层和业务规则层提供数据服务,其中包含了各种数据访问的类。
    数据层:位于底层,以ADO.NET为接口,SQL Server2000为后台,主要处理应用层对数据的请求。
    系统运行时,客户端浏览器发出对页面的访问请求,访问表示层各aspx文件,再将各请求事件发送到业务外观层,业务外观层根据需要访问业务规则层或数据访问层。而业务规则层只能访问数据访问层,数据访问层通过ADO.NET访问数据层的存储过程以达到对数据库的操作。由于整个系统由相互交互的各层实现,因此可以实现系统的分布式部署,以达到分布式应用来减轻各层的压力。
    由于客户端向服务器请求页面时,其复杂的逻辑处理在服务器端进行,在客户端只能看到该网页的最终表现和HTML,而不能看到该网页的程序逻辑,这样可以有效地保护程序代码的安全。
    图1对应的研究生学位信息管理软件模块结构如图2所示。
图2  学位系统功能模块图
    其中,各模块实现的功能如下:
    (1)数据导入:辅助学位办工作人员从其它部门(招生办、培养科)导入学生已有的基本信息,包括学籍信息和培养信息。
    (2)数据录入:辅助学位办工作人员通过研究生部局域网,以及研究生通过互联网录入相关信息。
    (3)数据处理:实现学位证书号码自动生成、数据转存数据维护等操作。
    (4)用户管理:实现各种登录用户的角色、权限管理以及密码修改。
    (5)数据查询:实现从数据库查找相关学生记录,并按一定格式显示和打印。
    (6)数据输出:实现学位申请表的打印、学位信息导入、上报库dbf表等功能。

3  系统实现

    1) ASP.NET中的安全机制
    学位系统采用ASP.NET安全架构中的表单验证方式实现用户登录。使用表单身份验证时,通过指定的登录页面收集用户的凭证信息,如果未验证身份的用户试图访问受保护的文件或资源(其中,URL授权拒绝用户访问)将被重新定向到该登录页面,用户在此处尝试通过身份验证。用户提供凭据并提交该窗体,如果应用程序对请求进行身份验证,系统会发出一个Cookie,其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该Cookie,ASP.NET事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。其验证流程如图3所示。
图3  基于窗体的身份验证流程
    基于窗体的身份验证开发步骤如下:
    (1) 将IIS配置为使用匿名访问。
    (2) 将 ASP.NET 配置为使用表单身份验证。在Web.config文件中配置authentication元素的属性,设置为身份验证模式。
    <authentication mode="Forms">
    <forms name=".ASPXAUTH" protection="Encryption" timeout="15" loginUrl="Login.aspx" />
   </authentication>
    (3) 检索数据存储验证用户,从自定义数据存储中检索角色列表(不是基于角色可不用)。
    (4) 使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储角色到票中。
    FormsAuthentication.SetAuthCookie(Username,true | false)
    HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1) //cookies保存时间
如果需要存储角色,采用:
FormsAuthenticationTicket authTicket = new Forms AuthenticationTicket(
     1,                 // 版本号,设置为1
     txtUserName.Text,   // 用户标示
     DateTime.Now,      // Cookie的发出时间, 设置为 DateTime.Now
     DateTime.Now.AddMinutes(20),// Cookie的有效时间
     false,         // 是否持久性
roles );        //roles为存储的用逗号分割的角色串
string encryptedTicket = FormsAuthentication. Encrypt (authTicket); //把身份验证票加密
//设置验证票cookie,第一个参数为cookie的名字,第二个参数为cookie的值也就是加密后的票
12下一页  GO
阅读:
录入:中国论文联盟

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
免费论文搜索


本周热门内容