工具之家 > 软件导刊 > 基于ASPNET的成员资格管理框架及其教学方法研究

基于ASPNET的成员资格管理框架及其教学方法研究

发布时间:2018-10-10 02:16:00 文章来源:工具之家    

 推荐工具:金融理财app工具实用工具

梁瑞仕+马慧+杨亮+肖涛

摘 要:成员资格管理是Web系统开发过程中极其重要的问题,是保证系统安全性的重要手段。成员资格管理主要包括用户和角色定义、用户验证和授权等内容。研究了基于ASP.NET的成员资格管理框架体系,给出了典型的编程范例,并从课堂教学角度出发,设计了一套基于类比法的教学方法及案例,适用于各级院校和培训机构的现场教学使用。

关键词关键词:ASP.NET;Web应用系统安全;成员资格管理;类比教学法

DOIDOI:10.11907/rjdk.161715

中图分类号:G434

文献标识码:A 文章编号:1672-7800(2016)008-0186-03

0 引言

保证系统安全性是Web应用开发过程中的核心问题,而系统安全的关键问题是用户及其权限控制,通常称为成员资格管理(Membership Management),主要包括用户和角色定义、用户验证和授权等。

ASP.NET是由微软公司推出并被广泛运用于工业界的Web开发技术[1,2],它在用户及安全管理方面有完整的解决方案。尽管工业界和学术界对于相关方面的论述[3,4],以及关于ASP.NET教学研究方面的文献非常多[5],但很多材料容易陷入技术细节的阐述而忽略了对框架体系整体的介绍,不便于课堂教学使用。本文将从框架全貌的角度出发对基于ASP.NET的成员资格管理框架进行介绍和总结,并编写了典型的编程范例。为了提高课堂教学效果,研究和借鉴了基于类比法的教学方法[6],并设计了用于理解成员资格管理核心概念的“访问大学校园”类比教学案例。

1 基于ASP.NET的成员资格管理框架结构

ASP.NET技术为实现成员资格管理提供了一整套解决方案,包括3个层级的技术方案(见图1)。位于底层的是数据库系统(默认数据库名称为aspnetdb),可实现对成员资格数据进行持久化存储,包括用户信息、角色信息、用户偏好、登陆信息等;位于中间层的是.NET基础类库,主要是位于System.Web.Security 命名空间下的各种类和委托等,包括Membership、Roles、FormsAuthentication类等,提供包括新增/删除/修改用户和角色、表单验证等功能;位于上层的则是提供给开发者和管理员的几种工具,包括网站管理工具、网站配置文件、登陆系列控件、高级程序设计,用于在系统开发和管理过程中实现具体的成员资格管理任务。其中前2种工具以可视化向导方式提供一些基本的网站安全管理工具,主要面向网站管理员;后2种则通过可视化设计和手动编程方式实现完备的成员资格管理,主要面向Web系统开发者。

网站管理工具适合网站管理员在服务器后台小批量地添加用户和角色,创建网站访问规则,如为Web系统添加二级管理员、网站角色等,如图2所示。

网站配置文件用于保存网站的验证、授权、数据库连接字符串等基本信息。例如,为了实现Forms身份验证,在配置文件的节点中间,写入如下配置语句:

以上语句实现了对网站的forms身份验证,当验证通过时跳转至默认主页,当验证不通过时跳转至登录页面。

为了实现对网站根目录的授权配置,在网站根目录配置文件的节点中间,可写入如下配置语句:

以上配置语句使Web系统启用了角色功能,并实现了对网站根目录的授权,即拒绝匿名用户访问,而运行管理员角色访问。

2 典型编程范例

本节展示了成员资格管理的典型操作和编程范例,此处选取注册用户、用户登录、用户身份验证等3个典型操作进行说明。

2.1 注册用户典型代码

用户注册功能几乎是每个Web系统的必备功能。ASP.NET提供了CreateUserWizard控件帮助开发者快速搭建登录界面,并内置默认登录逻辑,帮助开发者提高开发效率。当然,对于大部分网站而言,该控件及内置登录逻辑有时并不能很好地满足Web系统的个性化需求。因此,本节重点介绍了ASP.NET提供的注册用户相关功能类库和典型使用方法。

注册用户过程需要用户在Web页面输入各种所需的注册信息,然后将注册信息传入底层数据库进行身份判断,进而拒绝用户注册或完成用户注册过程。典型代码如下:

string username = "abc",password = "123abcd~";//此處表示用户输入的用户名和密码

string email = "abc@abc.com",passwordQuestion = "abc",passwordAnswer = "abc";//此处表示注册信息

MembershipCreateStatus status; //用于函数的输出参数,不需赋值,指示用户创建失败原因

MembershipUser user = Membership.GetUser(username); //从数据库中读取username的数据

if (user == null) //如果用户不存在

{

/*如果:①用户名或密码不符合网站要求;②网站要求提供Email、密码问题和答案等信息,但调用函数时未提供或不符合要求,以上情形都会引发异常。编程实践中最好将以下代码放入try-catch块中*/

user = Membership.CreateUser(username,password,email,passwordQuestion,passwordAnswer,true,out status);

if (user != null)

Response.Write("");

}

else

Response.Write("")

2.2 用户登录及验证典型代码

用户登陆过程中经常涉及2个过程:验证和跳转。验证过程是将输入的用户名和密码传入底层数据库,由ASP.NET自动去aspnetdb数据库进行身份验证。根据验证结果,将确定将用户转入何种功能页面,验证成功后则将用户转入相关页面。典型的用户登录和验证代码如下:

string username = "abc",password = "123abcd~";//此处表示用户输入的用户名和密码

bool isValidUser = Membership.ValidateUser(username,password);//执行身份验证

if(isValidUser) //验证通过,表示是合法存在的用户

{

//跳转回到上次的页面或登陆页面,将用户名存储在cookie中

FormsAuthentication.RedirectFromLoginPage(username,true);

}

2.3 创建角色及添加用户到角色典型代码

角色的目的是便于系统对于大量用户提前进行分类和管理,以提高用户和授权管理效率。ASP.NET提供了非常便利的角色和用户管理类库,角色和用户均以字符串形式名称表示,非常方便开发者理解和使用。以下是创建角色以及将用户添加到角色中的典型代码演示:

string taRole = "Teacher",stRole = "Student";//此处的Teacher、Student表示角色名称

string taUser = "Larry Page";//此处的Larry Page表示具体的用户名称

string[]stUsers = new string[]{ "Mei H.","Lei L." };//此处Mei H.,Lei L.表示具体的用户名称

//创建两种新角色

Roles.CreateRole(taRole);

Roles.CreateRole(stRole);

Roles.AddUserToRole(taUser,taRole);//添加单个用户到角色中

Roles.AddUsersToRole(stUsers,stRole);//添加多个用户到角色中

3 基于类比法的教学方法及案例研究

对于一个Web应用系统,通常由很多功能模块及其相应资源组成,供各种网站成员有限制地访问并提供服务。因此,Web应用系统的安全管理可以直观地理解为针对不同网站成员,设计不同权限,提供特定的网站服务。为了在课堂教学过程中使学生快速、准确、完整地理解成员资格中的“验证”和“授权”2个核心概念,引入了类比教学法,并设计了一套贴近现实生活的“访问大学校园”的典型教学案例。

在一个典型的大学校园,有公共教学楼、图书馆、宿舍楼、实验室等,这些场所由于涉及公共设备或师生的私人财产,都有严格的出入条件,如图书馆只能允许持有校园卡的师生进入,宿舍楼只允许居住本栋的学生刷卡进出等。此外还有门卫保安专人把守的大学校门,负责维持出入校门的秩序并进行登记管理。比如,任何人都应出示合法证件进入校园,对于非本校师生还要进行额外的身份登记。实际上,大学校园相当于一个典型的Web系统,各种场所及其设施则相当于Web系统的多种功能模块及资源,对这些功能模块及资源都有其自身的权限要求,如后台系统一般只允许授权管理员访问和登陆等。

以上关于大学校园的安全管理可引出2个重要概念:验证和授权。校门卫会对出入校园的行人进行身份核实,符合条件的行人可放行进入校园,不符合条件且无法提供合理身份证明的行人将被拒绝进入,这便是验证过程。一旦验证通过,行人便成为合法用户进入校园,理论上就具备了使用校园设施的前提条件。接下来,这些合法用户可进入校园的公共操场、花园等场所,一般这些地方都开放给任何进入校园的人使用。但有些场所,如图书馆、教学楼、实验室等,需要用户有相应权限之后才可进入,这便是授权过程。因此,学校会分配给教职工、学生、校友等不同的功能卡,以便其具有不同的权限进入相应场所,这种“授权”操作实现了对校园设施的安全管理。实际上,Web系统的功能模块及其资源的使用也同样存在验证和授权过程。对每个登录Web系统的用户,系统均会验证身份以确定其是否有资格访问系统,然后对验证通过的合法用户,根据其授予的权限,给予相应功能模块及资源的访问资格,以达到系统安全管理的目的。

当然,由于大学校园的师生众多,为了便于管理,会将师生分类以角色的形式表现,可大致分为几种角色:教师、学生、职工、管理员等,从而使对大量用户的授权管理简化为对几种角色的管理。实际上,Web系统也同样运用了角色的概念,授权首先是针对角色进行,每种角色均有对应权限。对于任何用户,均可为其分配一种或多种角色,于是便相应地授予该用户一种或多种权限。

本案例已成功运用于本科教学课堂当中,每位教师只需进行简单的学习培训便可掌握教学要点,而学生能在课堂学习过程中非常容易地理解成员资格管理中的核心概念,有助于其下一步学习相关的理论知识和编程技巧。

4 结语

本文讨论了基于ASP.NET的成员资格管理框架,给出了成员资格管理的框架体系结构图,介绍了各个层次的特点,并给出了典型的编程案例。ASP.NET的用户和角色管理功能完善,且提供了便利的登陆控件及完整的类库供开发者使用,能满足大部分Web系统的开发需求。此外,本文提出了基于类比法的教学思路和案例,并在本科教学课堂中进行运用。实践表明,该教学方法可起到良好的教学效果。

参考文献:

[1]IMAR SPAANJAARS.Beginning ASP.NET 4.5:in C# and VB[M].Wiley,2012.

[2]沈士根,汪承焱,許小东.Web程序设计——ASP.NET使用网站开发[M].第2版.北京:清华大学出版社,2014.

[3]杨旺明.基于Asp.Net的权限系统的设计与实现[J].计算机与数字工程,2014(3):482-485.

[4]赵强,张红忠.基于ASP.NET的网站系统安全性设计与实现[J].计算机应用,2008(S2):271-273,279.

[5]杨亚菁.以项目实践为导向的ASP.NET课程层次化教学研究[J].软件导刊,2016,15(1):186-187.

[6]梁瑞仕,曾荔枝,杨亮.类比教学法在本科计算机算法课程中的探索与实践[J].现代计算机,2013(8):46-47.

(责任编辑:黄 健)

软件导刊 2016年8期

软件导刊的其它文章 翻转课堂教学模式应用研究 基于生态和谐理念的网络学习空间建设及应用 基于云的高校协作学习方案设计 基于MOOC的混合教学方法研究 以计算思维培养为导向的《C语言程序设计》课程教学改革 高校编程类课程云端仿真实验教学平台创新设计与应用
转载请注明来源。原文地址:https://www.5420.com.cn/view/2018/1010/5271/
 与本篇相关的热门内容: