蘇玉梅 孫守強
摘 要:ASP.NET技術(shù)因其簡單、易上手,成為了很多網(wǎng)站開發(fā)者采用的開發(fā)平臺。本文以一個網(wǎng)站開發(fā)案例給出了一個快速進行網(wǎng)站設(shè)計與制作的流程,同時講解了ASP.NET中的母版頁技術(shù)、導(dǎo)航技術(shù)、角色認證技術(shù)、格式化數(shù)據(jù)輸入、數(shù)據(jù)加密技術(shù)、驗證碼技術(shù)和數(shù)據(jù)庫訪問技術(shù)等。
關(guān)鍵詞:ASP.NET;網(wǎng)站開發(fā)流程;網(wǎng)站開發(fā)技術(shù)
1 前言
ASP.NET因其簡單、易學(xué)成為了網(wǎng)站業(yè)余愛好者和高校網(wǎng)站開發(fā)課程普遍選擇的一個技術(shù)工具,關(guān)于這方面的書籍和資料很多,但是能使學(xué)習(xí)者快速掌握ASP.NET技術(shù)的總結(jié)資料卻很少,本文結(jié)合一個網(wǎng)站開發(fā)案例對ASP.NET中的技術(shù)進行總結(jié),希望給閱讀者可以提供一定的幫助。
2 網(wǎng)站案例說明
本網(wǎng)站將結(jié)合SQLServer,創(chuàng)建一個數(shù)據(jù)庫(如:test),創(chuàng)建一個數(shù)據(jù)表(如:table1),字段有:學(xué)號(如:id,主鍵)、密碼(pwd)、姓名(name)、性別(sex)、角色(role,保存用戶角色信息)、身份證號(card)、照片(photo,用于保存照片存放的路徑)。
3母版頁的設(shè)計與導(dǎo)航的添加
MasterPage用于定義網(wǎng)站中不同網(wǎng)頁的相同部分,例如網(wǎng)站的格局、頁頭、頁腳、導(dǎo)航欄等,實現(xiàn)網(wǎng)站的模版功能。在Visual Studio中,通過表格可以快速的對網(wǎng)頁進行布局;通過Menu和TreeView控件添加菜單或?qū)Ш絽^(qū)域,其中的SiteMapPath控件更是一個極為好用的獲取網(wǎng)站地圖的控件,當(dāng)然之前需要添加Web.SiteMap站點地圖文件,規(guī)劃網(wǎng)站中文件之間的邏輯層次。
4 角色認證技術(shù)
本網(wǎng)站要求具備管理員和用戶兩個角色,如:admin(管理員角色)、user(注冊用戶角色)。
1)在網(wǎng)站中分別建立管理員和注冊用戶訪問的文件夾,可放置不同角色訪問的頁面、圖片、視頻、動畫等各種資源文件。
2)在文件夾中分別創(chuàng)建Web.Config文件,如:注冊用戶文件夾中的配置文件參考代碼如下:
3)角色、用戶和權(quán)限信息不建議大家采納系統(tǒng)自帶的數(shù)據(jù)庫進行信息的保存,訪問性太差,在Global.asax文件的Application_AuthenticateRequest事件中,將當(dāng)前用戶的標(biāo)識與當(dāng)前用戶登錄驗證票據(jù)中保存的用戶角色進行匹配。
5 格式化數(shù)據(jù)輸入
驗證控件用于對指定的Web控件檢查輸入的數(shù)據(jù)是否符合某些規(guī)則(例如必須輸入非空數(shù)據(jù)、數(shù)據(jù)格式與范圍應(yīng)滿足一定的要求等)。如非空驗證控件RequiredFieldValidator,格式驗證控件RegularExpressionValidator,范圍驗證控件RangeValidator,比較驗證控件CompareValidator等。
6數(shù)據(jù)加密、驗證碼等網(wǎng)站安全訪問技術(shù)
在上面的用戶注冊中,密碼數(shù)據(jù)在寫入數(shù)據(jù)庫之前最好要進行加密,防止數(shù)據(jù)庫數(shù)據(jù)泄漏后的密碼泄密,在ASP.NET中對文本框數(shù)據(jù)進行加密可以采用md5技術(shù)完成,再存儲到數(shù)據(jù)庫中:
FormsAuthentication.HashPasswordForStoringInConfigFile(Server.HtmlEncode(txtuserpwd.Text),"md5");
驗證碼是一種防范Cookie數(shù)據(jù)自動保存而引起的憑據(jù)被截取技術(shù),從自己服務(wù)器發(fā)起的表單進行驗證便可解決這一漏洞,隨機產(chǎn)生的驗證碼和文本框比較來實現(xiàn),關(guān)于產(chǎn)生圖片驗證碼的技術(shù)源碼網(wǎng)絡(luò)上的資源有很多,大家可以進行自由下載參考。
7數(shù)據(jù)庫訪問技術(shù)
1)ADO.NET作為網(wǎng)頁與數(shù)據(jù)庫訪問的接口,提供強有力的對象支持,在實現(xiàn)過程中,我們可以基于以下兩種策略來實現(xiàn)。一種策略是連接對象Connection(指定數(shù)據(jù)庫信息)、命令對象Command(查詢、添加、修改、刪除)、數(shù)據(jù)讀取對象DataReader(執(zhí)行操作后的臨時數(shù)據(jù)表,給應(yīng)用程序提供執(zhí)行操作后的結(jié)果);一種策略是連接對象Connection、數(shù)據(jù)適配器對象DataAdaper(負責(zé)數(shù)據(jù)的傳輸)、數(shù)據(jù)集對象DataSet(臨時數(shù)據(jù)庫,保存執(zhí)行后的臨時數(shù)據(jù),供應(yīng)用程序訪問)。
2)從vs2005以后版本的.NET開發(fā)平臺,增加了使用數(shù)據(jù)源直接操作數(shù)據(jù)庫的功能,省去了連接的過程和臨時數(shù)據(jù)操作。
3)數(shù)據(jù)批量導(dǎo)入,借助文件上傳控件導(dǎo)入EXCEL文件,借助ADO.NET實現(xiàn)數(shù)據(jù)的導(dǎo)入,借助GridView控件進行數(shù)據(jù)的顯示,最后使用For循環(huán)實現(xiàn)數(shù)據(jù)的添加。
①文件的導(dǎo)入:filepath = Server.MapPath("~\\MSadmin\\") + "excel.xls";FileUpload1.SaveAs(filepath);
GridView1.DataSource = CreateDataSource();
②借助ADO.NET實現(xiàn)數(shù)據(jù)的導(dǎo)入,即CreateDataSource()方法實現(xiàn)數(shù)據(jù)的連接,數(shù)據(jù)適配器的設(shè)置,生成的數(shù)據(jù)集對象作為函數(shù)的返回值,以綁定到GridView控件中。
③通過For循環(huán)將GridView中的數(shù)據(jù)進行讀取并寫入到數(shù)據(jù)庫中。
4)數(shù)據(jù)批量導(dǎo)出,借助于Gridview將查詢的結(jié)果先進行顯示,然后將表格中的數(shù)據(jù)進行導(dǎo)出到EXCEL中,關(guān)鍵代碼為:
Response.AppendHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode("表名.xls",Encoding.UTF8).ToString());
8 結(jié)論
通過一個實際的網(wǎng)站案例,從網(wǎng)站布局設(shè)計到網(wǎng)站安全防范、網(wǎng)站技術(shù)實現(xiàn),本文給出了一個概要框架,限于篇幅的原因,很多技術(shù)細節(jié)沒有體現(xiàn);當(dāng)然,ASP.NET網(wǎng)站開發(fā)技術(shù)還有很多,本人也在學(xué)習(xí)過程中,論文所列觀點與技術(shù)點僅供參考,不恰當(dāng)之處還請閱讀者多多指教。
參考文獻:
[1]孫守強.“基于ASP.NET平臺的安全網(wǎng)站編程技術(shù)”.電子技術(shù)與軟件工程,2015.6.
[2]程不功.《ASP.NET 2.0動態(tài)網(wǎng)站開發(fā)教程》.清華大學(xué)出版社,2008.1
[3]趙強、張紅中.“基于ASP.NET的網(wǎng)站系統(tǒng)安全性設(shè)計與實現(xiàn)”.計算機應(yīng)用,2008.12.