ASP.NET架构下用户信息管理安全机制的实现

时间:2022-09-11 08:58:53

ASP.NET架构下用户信息管理安全机制的实现

摘要:随着网络技术的发展,网络交易越来越被大众接受。在交易前,往往需要用户在客户端注册申请用户名、密码及其它一些信息。网络交易的安全性及其要求也越来越高,尽管程序设计人员可能很细致地定义了页面不能被无权限的人访问,然而还是有可能出现一些无法被检查出来的漏洞让他们绕过安全验证。为了保证网络交易的安全,通过不断研究 2.0,在项目中不断实践、对比,发现利用 2.0的安全框架,能使程序人员从安全验证的繁琐设计中解脱出来。

关键词: 2.0;安全框架;验证;web开发

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)08-1718-02

The Realization of Users' Data Management System Based on 2.0 Security Frameworks

FAN Hong-zhen

(Computer Engineering Technical College, Guangdong Institute of Science and Technology, Zhuhai 519090, China)

Abstract: Along the development of network technology, the network trades are more and more accepted by the public.There is need to register the application of user's name, password and other information by customer before bargain.Safety and its request of the network trade are also more and more serious, though the designer of the program may define the page which can't be visited by users who are the beyond the power very delicately. However, it is still possible to appear some bugs that can't be checked, which let them get through the security verification.For promising the security of the network trade, programmers study 2.0, practice and contrast on the items continuously. As a result, we can set free from the complicated design of safe verification if making use of 2.0 security frameworks.

Key words: 2.0; security framework; verification; web development

随着网络技术的发展,各种应用服务对网络安全提出了越来越高的要求。如网上银行、网上商店及其它一些网络交互平台的交易都在网络上进行。在交易前,往往需要用户在客户端申请用户名、密码及其它一些信息。这些信息通过表单载入,并在数据库中建立相应的数据表。因此,登录、注册、用户认证、角色安排及账号管理等构成的用户信息管理系统都需要程序员仔细设计。

然而,很多编程人员在设计带有用户注册、登录等模块的网络交互平台时,其方法主要是验证用户的登陆是否合法,然后发送一个表示验证的Cookie,或者在Session中保存信息以便于追踪接下来的访问授权。尽管设计人员可能很细致地定义了页面不能被无权限的人访问,然而还是有可能出现一些无法被检查出来的漏洞让他们绕过安全验证。对于包含登录、注册、用户认证等的用户信息管理系统的设计,以前由程序人员全部设计完成,难免会存在一些问题。而现在,使用 2.0自带的安全框架进行用户信息管理系统设计,不仅方便快捷,而且安全,还能使我们从安全验证的繁琐设计中解脱出来。在研究和利用 2.0安全框架下的用户信息管理系统的基础上,已成功地将其应用在NoStyle(诺斯黛尔)电子商务网站项目中。

1 2.0 安全框架的组成

1.1 Membership类

Membership类是 2.0 安全框架中的一个主要的类,它存在于System.Web.Security包中。Membership 类用于要是创建用户帐号、验证用户身份和管理用户设置等。Membership 类可以独自使用,或者与 FormsAuthentication 一起使用以创建一个完整的 Web 应用程序或网站的用户身份验证系统。Login控件封装了Membership 类,从而提供一种便捷的用户验证机制。表1列出本项目在用户信息管理系统设计上所使用的方法。

1.2 MembershipUser 类

MembershipUser类是 2.0安全框架中的另一个重要的类,也存在于System.Web.Security包中,负责管理与更新Membership表中的相关资料,比如,描述成员数据存储中单一的注册用户信息,包含了众多的属性来获取和设置用户信息,包含方法来检索、改变和重设密码等。表2和表3列出本项目在用户信息管理系统设计中使用到MembershipUser 类的属性与方法。

1.3 SqlMembershipProvider 类

在.NET 框架中提供的两个MembershipProvider实现类:ActiveDirectoryMembershipProvider和SqlMembershipProvider。前者是提供基本活动目录下的用户管理,后者就是我们最经常使用到的基于SQLServer的用户管理实现。SqlMembershipProvider是一个成员资格类,用于管理SQL Server数据库中应用程序的成员资格信息存储,为使用SQL Server数据库应用程序提供成员资格服务。在应用程序首次运行时,SqlMembershipProvider对象将在应用程序的App_Data目录创建一个名为aspnetdb的数据库。

2 基于 2.0的用户信息管理系统的构建

2.1 安装服务的SQL Server数据库

本项目已经创建一个名为“TheNostyleBook”的数据库。现要将服务的SQL Server数据库添加到“TheNostyleBook”的数据库中。打开VS2008命令提示,输入aspnet_regsql.exe后,按照 SQL Server安装向导一步步地完成,则会将用于服务的数据库中的表添加到“TheNostyleBook”的数据库中。同时,在App_Data目录创建一个名为aspnetdb的数据库。

2.2 创建用户信息管理系统

1)成员资格Provider模型。本项目有在实现用户注册功能时,使用的是图1模型结构:顶层利用CreateUserWizard控件实现用户注册界面;次层是成员资格层API,它提供各种实际操作的实现;再下层是为成员资格提供数据存储操作的Provider;最底层是本项目使用的SQL Server数据库。

在Web.config文件中的节点下设置,为成员资格指定Provider。如在中设置:

……

type=”System.Web.Security.SqlMembershipProvider,System.Web.Extensions,Version=2.0.0.0,

Culture=neutral,PublicKeyToken= 31BF3856AD364E35” />

同时,在节点下设置用于成员资格服务的数据库连接字符串:

Integrated Security=SSPI; InitialCatalog=aspnerdb;” providerName=”System.Data.SqlClient” />

2)创建用户输入界面。用户输入界面是用来注册用户,用户所输入的相关内容将会被保存到表中。在本项目中利用CreateUserWizard控件(处于vs2008IDE工具箱的登录栏中)创建用户输入界面,要求用户通过该控件输入用户名、密码、E-mail地址等。运行界面程序显示如图2所示。

单击“创建用户”按钮后,该控件会自动在事件处理函数中调用Membership.CreateUser方法,然后将用户名保存到aspnetdb数据库中的aspnet_Users表中,密码将会保存到aspnet_Membership表中。

3)创建新的成员资格类。在用户注册上,要求用户名和密码不能重名,因此需要重写sqlMembershipProvider类中的CreateUser方法,使得该方法能检查用户名和密码是否重名:

Public override MembershipUser CreateUser(string username,string password,string email,string passwordQuesion,string passwordAnswer,bool is Approved,object providerUserKey,out MembershipCreateStatusstatus)if(username.ToLower()==password.ToLower())xstatus =MembershipCreateStatus.InvalidPasword;return null;yelsexreturn base.CreateUser(username,password,email,passwordQuestion,passwordAnswer,Approved,

providerUserKey,out status);yy

3 结束语

通过在项目中不断地实践,发现 2.0 安全框架给程序开发人员提供了极大的方便,能够彻底把程序人员从繁琐的安全验证设计中解放出来。在此安全框架基础上,设计人员可还根据需要去重写安全框架中对应的类,以使得开发出的系统更能满足用户的需求。

参考文献:

[1] 徐布克,朱丽娟.基于2.0安全框架的用户资料管理系统的设计与实现[J].中国教育技术装备,2010(9):75.

[2] Baier D.开发更安全的 2.0实用程序[M].华中宇,田亮君,陈文,译.北京:人民邮电出版社,2008:20-25.

上一篇:关于三维仿真材质的研究与探讨 下一篇:嵌入式操作系统的多线程机制研究与实现