徐布克 朱麗娟
上海建橋?qū)W院信息技術(shù)系 上海 200335
基于ASP.NET 2.0安全框架的用戶資料管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
徐布克 朱麗娟
上海建橋?qū)W院信息技術(shù)系 上海 200335
根據(jù)ASP.NET 2.0安全框架,設(shè)計(jì)出上海市作家協(xié)會(huì)平臺(tái)網(wǎng)站中的用戶資料管理系統(tǒng),并詳細(xì)介紹該系統(tǒng)組成的原理和方法。相信該方案的提出會(huì)為Web開(kāi)發(fā)人員提供幫助。
ASP.NET 2.0;安全框架;Web開(kāi)發(fā)
10.3969/j.issn.1671-489X.2010.27.075
作者:徐布克,上海建橋?qū)W院教授級(jí)高工,研究方向?yàn)檐浖こ?;朱麗娟,上海建橋?qū)W院講師,研究方向?yàn)檐浖こ獭?/p>
Author’s addressDepartment of Information, Shanghai Jianqiao Institute, Shanghai, China 201319
隨著網(wǎng)絡(luò)技術(shù)和網(wǎng)絡(luò)安全的飛速發(fā)展,越來(lái)越多的交易都直接放在Internet(互聯(lián)網(wǎng))上完成,如網(wǎng)上銀行、網(wǎng)上商店以及其他的一些網(wǎng)絡(luò)媒體等。在這些網(wǎng)站上進(jìn)行交易之前,往往需要客戶端的用戶首先必須注冊(cè)申請(qǐng)用戶名和密碼,并留下相關(guān)信息后,方能在該網(wǎng)站上進(jìn)行各項(xiàng)交易。申請(qǐng)時(shí)填寫(xiě)用戶名和密碼,以及相關(guān)信息的寫(xiě)入,這些都需要通過(guò)一個(gè)表單為載體填入。那么如何設(shè)計(jì)這個(gè)表單,并且在數(shù)據(jù)庫(kù)中相應(yīng)的表中留下表單中填寫(xiě)的各項(xiàng)內(nèi)容,就成了開(kāi)發(fā)人員必須思考的問(wèn)題。
筆者研究與實(shí)現(xiàn)的基于ASP.NET 2.0安全框架的用戶資料管理系統(tǒng),已經(jīng)應(yīng)用在上海市作家協(xié)會(huì)平臺(tái)網(wǎng)站上。這種系統(tǒng)(包括登錄、注冊(cè)頁(yè)面、用戶認(rèn)證、角色安排以及賬號(hào)管理)的構(gòu)建,在以前都完全由開(kāi)發(fā)人員自己去完成,而現(xiàn)在就可以直接在ASP.NET 2.0自帶的安全框架上去完成,不僅方便快捷,而且安全!
Membership類是ASP.NET 2.0安全框架中的一個(gè)主要的類,它存在于System.Web.Security包中,并提供一系列的靜態(tài)方法用于創(chuàng)建、刪除、更新以及獲取注冊(cè)用戶。表1列出本項(xiàng)目在用戶資料管理系統(tǒng)的設(shè)計(jì)上所使用到的方法。
MembershipUser類是ASP.NET 2.0安全框架中的另一個(gè)主要的類,它也存在于System.Web.Security包中,并提供一系列的靜態(tài)屬性和方法用于輸入、返回、修改單個(gè)用戶信息等。表2和表3列出本項(xiàng)目在用戶資料管理系統(tǒng)的設(shè)計(jì)上所使用到的屬性和方法。
表1 Membership類中的常用方法
表2 MembershipUser類中常用的屬性
這是一個(gè)成員資格類,供Membership和MembershipUser 類使用,用于管理SQL Server數(shù)據(jù)庫(kù)中ASP.NET應(yīng)用程序的成員資格信息存儲(chǔ),為使用SQL Server數(shù)據(jù)庫(kù)的ASP.NET應(yīng)用程序提供成員資格服務(wù)。在應(yīng)用程序首次運(yùn)行時(shí),SqlMembershipProvider對(duì)象將在應(yīng)用程序的App_Data目錄創(chuàng)建一個(gè)名為aspnetdb的數(shù)據(jù)庫(kù)(見(jiàn)“3.1 安裝ASP.NET服務(wù)的SQL Server 數(shù)據(jù)庫(kù))。
表3 MembershipUser類中常用的方法
本項(xiàng)目已經(jīng)創(chuàng)建一個(gè)名為“TheSilverBook”的數(shù)據(jù)庫(kù)。現(xiàn)在要將ASP.NET服務(wù)的SQL Server數(shù)據(jù)庫(kù)添加到“TheSilverBook”的數(shù)據(jù)庫(kù)中。打開(kāi)VS2008命令提示,如圖1所示。輸入aspnet_regsql.exe后,按照ASP.NET SQL Server安裝向?qū)б徊讲降赝瓿?,則會(huì)將用于ASP.NET服務(wù)的數(shù)據(jù)庫(kù)中的表添加到“TheSilverBook”數(shù)據(jù)庫(kù)中。同時(shí),在應(yīng)用程序的App_Data目錄里出現(xiàn)一個(gè)名為aspnetdb的數(shù)據(jù)庫(kù)。
1)成員資格Provider模型。本項(xiàng)目在實(shí)現(xiàn)用戶注冊(cè)功能時(shí),使用的是圖2模型結(jié)構(gòu):最上層利用CreateUserWizard控件實(shí)現(xiàn)用戶注冊(cè)界面;接下來(lái)的層是成員資格的API,它提供各種實(shí)際操作的實(shí)現(xiàn);再下層是為成員資格提供數(shù)據(jù)存儲(chǔ)操作的Provider;最下層是本項(xiàng)目使用的SQL Server數(shù)據(jù)庫(kù)。
在Web.config文件中的〈system.web〉節(jié)點(diǎn)下設(shè)置,為成員資格指定Provider。如在〈membership〉〈provides〉中設(shè)置:
同時(shí),在〈configuration〉節(jié)點(diǎn)下設(shè)置用于成員資格服務(wù)的數(shù)據(jù)庫(kù)連接字符串:
2)創(chuàng)建用戶輸入界面。用戶輸入界面是用來(lái)注冊(cè)用戶的,用戶所輸入的相關(guān)內(nèi)容將會(huì)被保存到表中。在本項(xiàng)目中利用CreateUserWizard控件(處于vs2008IDE工具箱的登錄欄中)創(chuàng)建用戶輸入界面,要求用戶通過(guò)該控件輸入用戶名、密碼、E-mail地址等。運(yùn)行界面程序顯示如圖3所示。
單擊“創(chuàng)建用戶”按鈕后,該控件會(huì)自動(dòng)在事件處理函數(shù)中調(diào)用Membership.CreateUser方法,然后將用戶名保存到aspnetdb數(shù)據(jù)庫(kù)中的aspnet_Users表中,密碼將會(huì)保存到aspnet_Membership表中。
3)創(chuàng)建新的成員資格類。在用戶注冊(cè)上,要求用戶名和密碼不能重名,因此需要重寫(xiě)SqlMembershipProvider類中的CreateUser方法,使得該方法能夠檢查用戶名和密碼是否重名:
本文介紹了ASP.NET 2.0中的安全框架,并提出在此安全框架基礎(chǔ)上,設(shè)計(jì)人員可根據(jù)需要去重寫(xiě)安全框架中對(duì)應(yīng)的類,以使得開(kāi)發(fā)出的系統(tǒng)更滿足用戶的需求。
Design and Implementation of User Document Management System based on Security Framework in ASP.NET 2.0
Xu Buke, Zhu Lijuan
According to Security Framework in ASP.NET 2.0,we designed User Document Management System for Writer Association of Shanghai,and introduced this system’s principle and method in detail. We believe that the proposed scheme can provide help for Web developers.
ASP.NET 2.0; security framework; Web development
TP391
B
1671-489X(2010)27-0075-03