林華文露
(湖南科技學(xué)院 計(jì)算機(jī)與通信工程系, 湖南 永州 425100)
Microsoft.NET平臺(tái)的發(fā)展,在應(yīng)用程序開發(fā)領(lǐng)域中開創(chuàng)了一個(gè)新時(shí)代,它將推動(dòng)下一代 Internet的進(jìn)步。作為Microsoft.NET平臺(tái)的一部分,ASP.NET是一個(gè)革命性的編程框架,它實(shí)現(xiàn)了企業(yè)級Web應(yīng)用程序的快速開發(fā),并提供了最簡便、最具有擴(kuò)展能力的方式來開發(fā)、部署和運(yùn)行,可以將任何瀏覽器或設(shè)備作為目標(biāo)的Web應(yīng)用程序。尤其是A SP.NET2.0的推出,使得一個(gè)典型的Web應(yīng)用程序的編碼工作量減少了70%,甚至在一些簡單的程序中無需編寫任何代碼就可以實(shí)現(xiàn)所需要的功能。這是因?yàn)锳SP.NET2.0將常用的Web任務(wù)封裝到應(yīng)用程序服務(wù)控件中,可以像使用標(biāo)準(zhǔn)控件一樣使用這些功能。因此,利用ASP.NET進(jìn)行網(wǎng)站開發(fā),尤其是使用ASP.NET2.0提供的新功能,對廣大網(wǎng)站開發(fā)者而言,無疑是一件令人歡欣鼓舞的事情。
網(wǎng)站管理工具是ASP.NET2.0提供的一項(xiàng)新功能,利用這項(xiàng)新功能,網(wǎng)站管理人員可以使用基于Web的界面管理站點(diǎn),方便了程序員或系統(tǒng)管理員對網(wǎng)站進(jìn)行維護(hù)和管理。但在后臺(tái)數(shù)據(jù)庫的應(yīng)用及成員管理功能方面存在一些不足。本文對網(wǎng)站管理工具的不足作進(jìn)一步的分析,并提出相應(yīng)的改進(jìn)方法。
ASP.NET 網(wǎng)站管理工具功能的架構(gòu)如圖1所示:

圖1.SP.NET 網(wǎng)站管理工具功能
ASP.NET Configuration網(wǎng)站管理工具提供了三大功能:Provider設(shè)置,Security安全管理,Application應(yīng)用程序管理。這些功能設(shè)置都記錄在 Web.Config或 Machine.Config中,用XML格式設(shè)置。XML固然很方便,但對于剛?cè)腴T的用戶而言并不容易使用。因此ASP.NET提供了網(wǎng)站管理工具,方便用戶進(jìn)行這些設(shè)置。
(1)提供程序Provider設(shè)置
從上圖中可以發(fā)現(xiàn)會(huì)員管理、角色管理,這些數(shù)據(jù)并不是直接存儲(chǔ)在數(shù)據(jù)庫中,而是通過數(shù)據(jù)提供程序獲取。當(dāng)前的數(shù)據(jù)提供程序包括:
SQL Server Provider:存儲(chǔ)數(shù)據(jù)庫在SQL Server數(shù)據(jù)庫中,適用于公司網(wǎng)頁或數(shù)據(jù)量大的網(wǎng)頁。
Custom Provider: 例如公司已有的用戶數(shù)據(jù)庫,可以自行編寫Provider來訪問用戶數(shù)據(jù)。
(2)安全管理
ASP.NET 2.0 提供了安全管理。包括以下功能:
會(huì)員管理:首先決定登錄用戶的“身份認(rèn)證”,ASP.NET 2.0提供了會(huì)員管理功能,包括創(chuàng)建用戶賬號(hào),管理用戶賬號(hào),登錄畫面等。
角色管理:當(dāng)用戶登錄后,必須確認(rèn)用戶屬于什么角色。
網(wǎng)頁的訪問權(quán)限管理:最后必須決定每個(gè)角色或用戶可以訪問網(wǎng)頁的權(quán)限。
(3)應(yīng)用程序管理
應(yīng)用程序管理共包括3大部分:
網(wǎng)頁共用信息:創(chuàng)建網(wǎng)站時(shí),一定有許多網(wǎng)站的共用信息。例如,數(shù)據(jù)庫的連接等,這些數(shù)據(jù)都存在 Web.Config中。
SMTP設(shè)置:設(shè)置網(wǎng)頁e-mail時(shí)的SMTP設(shè)置,這些設(shè)置都會(huì)保存在Web.Config.中。
Debug調(diào)試設(shè)置:設(shè)置網(wǎng)頁的調(diào)試設(shè)置,這些設(shè)置保存在Web.Config.中。
2.1網(wǎng)站管理工具的不足
許多編程人員在利用ASP.NET2.0設(shè)計(jì)網(wǎng)站后臺(tái)管理模塊時(shí),因?yàn)樵摴芾砉ぞ叩木窒扌裕艞壛藢υ摴ぞ叩氖褂谩4嬖诘牟蛔阒饕憩F(xiàn)在以下幾個(gè)方面:
1、系統(tǒng)默認(rèn)是在SQL Server 2005中實(shí)現(xiàn)的,所有功能依賴于系統(tǒng)自動(dòng)建立的數(shù)據(jù)庫實(shí)例,而與開發(fā)者應(yīng)用系統(tǒng)的數(shù)據(jù)庫(如SQL Server 2000)分屬于兩個(gè)數(shù)據(jù)庫,甚至是兩個(gè)數(shù)據(jù)庫系統(tǒng),這給應(yīng)用系統(tǒng)的部署帶來了很大不便。
2、成員管理的功能默認(rèn)對用戶的密碼使用潛規(guī)則,而且一定要提供郵件才能注冊,這樣,用戶注冊時(shí)覺得繁瑣,而在一般的應(yīng)用系統(tǒng)中可能要求并不那么嚴(yán)格,因此有必要予以簡化。
3、在一般的應(yīng)用系統(tǒng)中,可能預(yù)先知道有大量的用戶列表,如何導(dǎo)入已有的用戶作為合法的注冊用戶,也有待編程實(shí)現(xiàn)。
2.2 網(wǎng)站管理工具的改進(jìn)
2.2.1 數(shù)據(jù)庫方面的改進(jìn)解決方法有兩種:
一是將 SQL Server 2000轉(zhuǎn)換為 SQL Server 2005 Express。
步驟1. 打開SQL Server 服務(wù)管理器
步驟2. 在SQL Server服務(wù)管理器對話框中停止SQL Server服務(wù)
步驟3. 復(fù)制SQL Server 2000數(shù)據(jù)庫文件步驟4. 將數(shù)據(jù)庫文件復(fù)制到網(wǎng)站文件夾
步驟5. 在“服務(wù)器資源管理器”窗口創(chuàng)建連接
步驟6. 在添加連接對話框中單擊“更改”按鈕選擇數(shù)據(jù)源,選擇數(shù)據(jù)庫文件
步驟7. 在“添加”連接對話框設(shè)置數(shù)據(jù)庫文件,選擇驗(yàn)證方式,至此已完成
二是在網(wǎng)站管理工具中設(shè)置集中管理安全管理提供程序。
步驟1.運(yùn)行VisualStudio2008命令提示步驟2.運(yùn)行aspnet_regsql.exe
步驟3.ASP.NET SQL Server安裝向?qū)?/p>
步驟4.ASP.NET SQL Server配置向?qū)Вx中為應(yīng)用程序服務(wù)配置 SQL Server步驟5.輸入數(shù)據(jù)庫連接信息,設(shè)置安全管理數(shù)據(jù)庫名稱步驟6.創(chuàng)建安全管理數(shù)據(jù)庫后設(shè)置啟用所有的Provider功能
步驟7.將數(shù)據(jù)庫添加到Machine.config Provider中登記完成這些操作后就可以利用網(wǎng)站管理工具對成員資格,角色管理等進(jìn)行操作了。
2.2.2成員管理方面的改進(jìn)
修改Web.Config中Provider屬性:

2.2.3導(dǎo)入已存在用戶列表
導(dǎo)入已有的用戶作為合法的注冊用戶大致分兩種情況:(一) 在SQL Server數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出(1)使用SELECT INTO導(dǎo)入數(shù)據(jù)
根據(jù)SELECT后的字段和INTO后的表名建立空表:將SELECT查出的數(shù)據(jù)插入到這個(gè)空表中。在使用 SELECT INTO語句時(shí),INTO后跟的表必須在數(shù)據(jù)庫中不存在,否則會(huì)出錯(cuò),下面是一個(gè)使用SELECT INTO的例子。
假設(shè)有一個(gè)表table1,字段為f1(int)、f2(varchar(50))。SELECT * INTO table2 FROM table1 ,這條SQL語句在建立table2表后,將table1的數(shù)據(jù)全部插入到table1中的,還可以將*改為f1或f2,以便向適當(dāng)?shù)淖侄沃胁迦霐?shù)據(jù)。
SELECT INTO不僅可以在同一個(gè)數(shù)據(jù)中建立表,也可以在不同的SQL Server數(shù)據(jù)庫中建立表。
如:
USE db1 SELECT * INTO db2.dbo.table2 FROM table1
(2)使用INSERTINTO導(dǎo)入數(shù)據(jù)
SELECT INTO只能將數(shù)據(jù)復(fù)制到一個(gè)空表中,而INSERT INTO可以將一個(gè)表或視圖中的數(shù)據(jù)插入到另外一個(gè)表中。例如:
INSERT INTO table1 SELECT * FROM table2 或 INSER T INTO db2.dbo.table1 SELECT * FROM table2
(二)從Excel文件中,導(dǎo)入數(shù)據(jù)到SQL數(shù)據(jù)庫中,直接用下面的語句:
如果接受數(shù)據(jù)導(dǎo)入的表已經(jīng)存在
insert into表select* from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel5.0;HDR=YES;DATAB ASE=c: est.xls',sheet1$)
如果導(dǎo)入數(shù)據(jù)并生成表
select*into表from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel5.0;HDR=YES;DATABASE=c: es t.xls',sheet1$)
本文分析了ASP.NET2.0網(wǎng)站管理工具的不足,并給出了詳細(xì)的改進(jìn)方法。ASP.NET2.0網(wǎng)站管理工具在對網(wǎng)站后臺(tái)數(shù)據(jù)庫管理方面還有諸多值得稱道的應(yīng)用和技巧,為網(wǎng)站開發(fā)人員提供了許多便利,需要在實(shí)際應(yīng)用中進(jìn)一步體會(huì)并根據(jù)需求加以進(jìn)一步改進(jìn)。
[1]高猛,張楚雄. ASP.NET 2.0入門經(jīng)典[M].北京:清華大學(xué)出版社.2006,5.
[2]王承君,李曉波,王兆紅.Web數(shù)據(jù)庫技術(shù)應(yīng)用教程[M].北京:中國水利水電出版社.2005,8.
[3]宮繼兵.ASP.NET 2.0 Web數(shù)據(jù)庫開發(fā)教程[M].北京:機(jī)械工業(yè)出版社.2009,1.
[4]王承君,李曉波,王兆紅.Web數(shù)據(jù)庫技術(shù)應(yīng)用教程[M].北京:中國水利水電出版社.2005,8.
[5]李長林. ASP.NET+SQL Server動(dòng)態(tài)網(wǎng)站開發(fā)[M].北京:清華大學(xué)出版社.2006,7.