摘要:該文簡(jiǎn)述了ASP.NET在文檔管理系統(tǒng)中設(shè)計(jì)與實(shí)現(xiàn)用戶登錄模塊的方法,重點(diǎn)分析了該模塊功能和按鈕響應(yīng)事件的部分代碼。
關(guān)鍵詞:ASP.NET;用戶登錄;文檔管理系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)04-0664-02
1 ASP.NET概述
ASP.NET是建立在公共語言運(yùn)行庫(kù)上的編程框架,可用于在服務(wù)器上生成功能強(qiáng)大的Web應(yīng)用程序。與以前的Web開發(fā)模型相比,ASP.NET提供了數(shù)個(gè)重要的優(yōu)點(diǎn):1)增強(qiáng)的性能。2)世界級(jí)的工具支持。3)威力和靈活性。4)可管理性。5.安全性。
ASP.NET不僅僅是下一版本的Active Server Page;它是統(tǒng)一的Web開發(fā)系統(tǒng),用來提供開發(fā)人員生成企業(yè)級(jí)Web應(yīng)用程序所需的服務(wù)。ASP.NET的語法在很大程度上與ASP兼容,同時(shí)它還提供一種新的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應(yīng)用程序。可以通過在現(xiàn)有ASP應(yīng)用程序中逐漸添加ASP.NET功能,隨時(shí)增強(qiáng)該ASP應(yīng)用程序的功能。
2 C#簡(jiǎn)介
C#(C sharp)是一種面向?qū)ο蟮木幊陶Z言。C#開發(fā)者可以方便的在微軟網(wǎng)絡(luò)平臺(tái)上擴(kuò)展自己的應(yīng)用。C#可以將任何組件轉(zhuǎn)變?yōu)閃EB服務(wù),并且可以被運(yùn)行于Internet上的任何平臺(tái)的任何應(yīng)用調(diào)用,重要的是C#對(duì)這一特性提供了內(nèi)置的支持,更重要的一點(diǎn),WEB服務(wù)框架可以讓任何WEB服務(wù)都看起來類似于C#的內(nèi)置對(duì)象,所以可以讓開發(fā)人員在開發(fā)過程中繼續(xù)使用他們已經(jīng)具備的面向?qū)ο蟮拈_發(fā)方法和技巧,因此,C#是最適合開發(fā). NET 應(yīng)用系統(tǒng)的程序語言。
3 模塊功能分析與設(shè)計(jì)
本文涉及的文檔管理系統(tǒng)(DMS)是采用了B/S的三層結(jié)構(gòu)模式。使用了SQL2005來建立數(shù)據(jù)庫(kù),子系統(tǒng)采用模塊化方式構(gòu)建,文檔的瀏覽和管理在沒有得到系統(tǒng)授權(quán)的前提下是無權(quán)進(jìn)行的。ASP.NET在用戶登錄模塊開發(fā)過程中提供了有效的安全策略,該模塊實(shí)現(xiàn)對(duì)身份認(rèn)證、權(quán)限分配來實(shí)現(xiàn)用戶的驗(yàn)證與登錄。
3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)使用的實(shí)際情況系統(tǒng)定義了四種角色:領(lǐng)導(dǎo)、主管、用戶、系統(tǒng)管理員。由于本系統(tǒng)設(shè)計(jì)在部門內(nèi)部網(wǎng)絡(luò)使用,故沒有設(shè)置瀏覽訪問的用戶,所有系統(tǒng)用戶都需要登錄認(rèn)證才能查詢、使用相應(yīng)的文檔信息。
3.2 創(chuàng)建系統(tǒng)用戶數(shù)據(jù)表
根據(jù)需求在數(shù)據(jù)庫(kù)(DMS)中創(chuàng)建系統(tǒng)用戶數(shù)據(jù)表(DMS_Users),由于該系統(tǒng)數(shù)據(jù)表較多,略過其它數(shù)據(jù)表。UPower字段為用戶權(quán)限對(duì)應(yīng)系統(tǒng)角色0-用戶,1-系統(tǒng)管理員,2-領(lǐng)導(dǎo),3-主管。
創(chuàng)建DMS_Users表并設(shè)置UID為主鍵SQL命令語句如下:
use "DMS"
create table "DMS_Users" (
"UID" varchar(10) not null,
"ULoginName" varchar(30) not null,
"UPwd" varchar(30) not null,
"Name" varchar(30) not null,
"Sex" bit not null,
"UEmail" varchar(30) null,
"UPower" int not null,
"UTel" varchar(30) null,
"DepID" varchar(10) not null,
"Remark" text null)
go
alter table "DMS_Users"
add constraint "DMS_Users_PK" primary key ("UID")
go
在表 "DMS_Users" 中添加外鍵約束:
alter table "DMS_Users"
add constraint "DMS_Dep_DMS_Users_FK1" foreign key ("DepID")
references "DMS_Dep" ("DepID") on update no action on delete no action
go
3.3 數(shù)據(jù)庫(kù)連接配置
管理系統(tǒng)為了保持良好的移植性,采用對(duì)數(shù)據(jù)庫(kù)配置進(jìn)行統(tǒng)一管理的方法。將程序中用到的連接字符串信息統(tǒng)一放置于Config.web配置文件中,在程序中對(duì)該文件的這一配置進(jìn)行調(diào)用,實(shí)現(xiàn)統(tǒng)一修改統(tǒng)一使用。由于在開發(fā)過程中數(shù)據(jù)庫(kù)使用的是本地?cái)?shù)據(jù)庫(kù),Data Source(數(shù)據(jù)源)設(shè)置為localhost;UID(用戶ID)設(shè)定為系統(tǒng)默認(rèn)的sa;PWD(連接密碼)設(shè)定為sa,這一個(gè)參數(shù)與數(shù)據(jù)庫(kù)安裝時(shí)對(duì)sa用戶密碼的設(shè)置有關(guān),而且sa的密碼可以在數(shù)據(jù)庫(kù)里面隨時(shí)進(jìn)行修改;DATABASE(數(shù)據(jù)庫(kù)名)設(shè)定為系統(tǒng)所使用的數(shù)據(jù)庫(kù)DMS。
Config.web配置主要代碼如下:
3.4 用戶登錄模塊設(shè)計(jì)
用戶登錄模塊界面如圖1所示,該模塊中包括5個(gè)主要控件(兩個(gè)文本框控件,兩個(gè)按鈕控件,一個(gè)Label控件),主要實(shí)現(xiàn)的是用戶的登錄操作。用戶登錄后,系統(tǒng)將自動(dòng)讀取該用戶的用戶名(ULoginName),并根據(jù)用戶名判斷用戶的角色和擁有的權(quán)限(UPower),隨后進(jìn)入不同的用戶界面(“登錄系統(tǒng)”按鈕的Click事件完成用戶合法性的數(shù)據(jù)庫(kù)驗(yàn)證。系統(tǒng)利用Session變量記錄用戶信息并伴隨用戶對(duì)系統(tǒng)進(jìn)行操作的整個(gè)生命周期)。
從系統(tǒng)開發(fā)環(huán)境中能發(fā)現(xiàn)系統(tǒng)頁面使用了代碼分離技術(shù),所謂分離技術(shù)就是前臺(tái)顯示的頁面代碼(.aspx)和后臺(tái)數(shù)據(jù)處理的邏輯代碼是分開存放(.CS)于兩個(gè)不同的文件當(dāng)中,簡(jiǎn)單來說就是,訪問的一個(gè).aspx的頁面其實(shí)包含了兩部分。使用代碼分離的好處是頁面表現(xiàn)和代碼分離,方便美工和程序的協(xié)同開發(fā),同時(shí)增強(qiáng)了程序代碼的可讀性,加強(qiáng)了網(wǎng)站的安全性。
下面主要分析一下系統(tǒng)用戶登錄頁面的后臺(tái)編碼類(login.aspx.cs)的相關(guān)代碼,重點(diǎn)分析登錄按鈕點(diǎn)擊后的響應(yīng)事件,該功能主要實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的連接、用戶匹配以及用戶權(quán)限信息的提取。
Login.aspx.cs部分代碼分析如下:
//打開數(shù)據(jù)庫(kù)
cn.Open();
//SQL語句構(gòu)造
string strsql="select * from DMS_Users where
ULoginName="'+TextName.Text+"'and UPwd="'+TextPwd.Text+"'"
//創(chuàng)建Command對(duì)象
SqlCommand cm=new SqlCommand(strsql,cn);
//執(zhí)行ExcuteReader()
SqlDataReader dr=cm.ExecuteReader();
if(dr.Read())
{//用戶合法,將用戶名、權(quán)限存入Session變量中
Session["userid"]=dr["ULoginName];
Session["userpower"]=dr["UPower"];
if(int)Session["userpower"]=1)
{ //用戶為系統(tǒng)管理員
Response.Redirect("admin.aspx");
}
else //如果用戶不存在,系統(tǒng)提示
{ label1.Text="用戶名或密碼不正確,請(qǐng)重新輸入!";
label1.Style["color"]="red";
}
//關(guān)閉數(shù)據(jù)庫(kù)
cn.Close();
}
4 結(jié)束語
本系統(tǒng)在文檔數(shù)據(jù)訪問控制中使用ASP.NET技術(shù)實(shí)現(xiàn)了系統(tǒng)用戶的登錄、驗(yàn)證等功能,使系統(tǒng)用戶登錄模塊化,最大程度實(shí)現(xiàn)了代碼重用性,使用戶界面風(fēng)格簡(jiǎn)潔統(tǒng)一,功能靈活并增強(qiáng)了網(wǎng)絡(luò)系統(tǒng)的可靠性與安全性。
參考文獻(xiàn):
[1] 游凱何.一個(gè)基于ASP.NET的會(huì)員登錄模塊的實(shí)現(xiàn)[J].科技信息:學(xué)術(shù)研究,2007(9): 184-185.
[2] 田彥.基于ASP.NET的主題在網(wǎng)站設(shè)計(jì)中用戶登錄界面的應(yīng)用[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2012(18): 58-59,67.
[3] 何冬梅.基于ASP技術(shù)用戶登錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].煤炭技術(shù),2012(9):209-210.
[4] 鐘良侃.一種模塊化用戶認(rèn)證服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化,2012(3):86-90.
[5] 張秀萍.基于ASP.NET的管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2010(1):109-110.