【摘 要】NET是當(dāng)前web應(yīng)用開發(fā)中流行的技術(shù),討論了一個基于ASP.NET、B/S開發(fā)模式和SQL Server 2000相結(jié)合的新聞發(fā)布管理系統(tǒng),同時對系統(tǒng)的功能模塊、體系結(jié)構(gòu)以及實現(xiàn)的關(guān)鍵技術(shù)進行了詳細的介紹。
【關(guān)鍵詞】ASP.NET;SQL Server 2000;三層架構(gòu);新聞發(fā)布系統(tǒng)
一、引言
信息發(fā)布系統(tǒng)作為網(wǎng)站的一個重要組成部分,任何網(wǎng)站都必然對它進行開發(fā)。傳統(tǒng)的網(wǎng)站新聞管理方式有兩種,一是靜態(tài)HTML頁面,更新信息時需要重新制作頁面,然后上傳頁面并修改相應(yīng)鏈接,這種方式因為效率太低己不多用;二是基于ASP和腳本語言,將動態(tài)網(wǎng)頁和數(shù)據(jù)庫結(jié)合,通過應(yīng)用程序來處理新聞頁面,這是目前較為流行的做法。但是由于ASP本身的局限性使得系統(tǒng)有一些不可消除的缺陷,而采取了ASP.NET技術(shù),增強了系統(tǒng)性能。
本文正是基于這種需求,結(jié)合當(dāng)今流行的ASP.NET技術(shù),采用簡單易行的B/S結(jié)構(gòu),應(yīng)用SQL Server后臺數(shù)據(jù)庫功能,來實現(xiàn)新聞發(fā)布管理系統(tǒng)。
二、系統(tǒng)分析與設(shè)計
(一)系統(tǒng)的開發(fā)模式
為了滿足系統(tǒng)對先進性、安全性、跨平臺性、可擴展性、可移植性、分布式等方面的要求,系統(tǒng)總體架構(gòu)設(shè)計采用先進的基于.NET的B/S的三層體系結(jié)構(gòu)。這種模型使系統(tǒng)結(jié)構(gòu)更加清楚,分工更加明確,有利于后期的維護和升級。三層體系結(jié)構(gòu)由瀏覽器、web服務(wù)器和數(shù)據(jù)庫組成,并結(jié)合HTML語言、C#語言、JavaScript腳本語言、ASP.NET、ADO.NET、ODBC等技術(shù),后臺數(shù)據(jù)庫采用SQL Server 2000。
用戶界面層是用戶和整個系統(tǒng)的接口,客戶端只需安裝通用的瀏覽器即可建立與本系統(tǒng)的連接。業(yè)務(wù)邏輯層負責(zé)處理用戶輸入的信息,或?qū)⑦@些信息發(fā)送給數(shù)據(jù)庫層進行保存,或調(diào)用數(shù)據(jù)庫層中的函數(shù)再次讀出這些數(shù)據(jù)。數(shù)據(jù)訪問層是整個分層體系的最底層,它主要用來實現(xiàn)與數(shù)據(jù)庫的交互,即完成查詢、插入、刪除和修改數(shù)據(jù)庫中數(shù)據(jù)的功能。
(二)系統(tǒng)的功能結(jié)構(gòu)
對于各類門戶網(wǎng)站的新聞發(fā)布系統(tǒng)來說,所發(fā)布的不僅僅只有新聞,還包括通知、公告和專題等各種動態(tài)的信息,是一種廣義上的新聞發(fā)布系統(tǒng),也稱其為信息發(fā)布系統(tǒng)。其流程主要是:系統(tǒng)管理員為各部門的管理員分配權(quán)限,信息管理員根據(jù)自己的用戶名和口令登錄到管理界面,進行新聞的錄入和發(fā)布。通過對系統(tǒng)流程及需求的分析,確定了系統(tǒng)主要包括新聞前臺顯示和后臺管理兩大類。該系統(tǒng)的功能模塊結(jié)構(gòu)圖如圖2所示。
三、系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)分析
(一)系統(tǒng)安全的設(shè)計
考慮到本系統(tǒng)采用的是B/S結(jié)構(gòu)體系,所有機器都在Internet的開放環(huán)境下,因此,系統(tǒng)必須充分考慮到網(wǎng)絡(luò)上存在的一切不安全因素。為此,本系統(tǒng)采用防火墻機制保護系統(tǒng)的數(shù)據(jù)和資源。在SQL Server數(shù)據(jù)庫中對用戶權(quán)限驗證采用雙層驗證機制:登錄身份驗證和對數(shù)據(jù)庫的所有用戶帳號、密碼及用戶權(quán)限的驗證。此外在數(shù)據(jù)庫中存儲的數(shù)據(jù),存儲前使用加密算法進行加密,在SQL Server數(shù)據(jù)庫中只能導(dǎo)出沒有任何意義的數(shù)據(jù);合法客戶請求數(shù)據(jù)時,從數(shù)據(jù)庫讀出數(shù)據(jù)后,首先使用對應(yīng)的解密算法,再把數(shù)據(jù)發(fā)送給用戶。加密算法封裝在dll文件中在源代碼中調(diào)用.并使用IP驗證來保護通過網(wǎng)絡(luò)傳遞的數(shù)據(jù)安全。在WEB服務(wù)器中,本系統(tǒng)采用了基于系統(tǒng)管理的頁面權(quán)限設(shè)計,根據(jù)安全策略劃分出不同的角色.對每個角色分配不同的權(quán)限,并為用戶指派不同的角色。用戶通過角色間接地對信息資源進行相應(yīng)的許可操作,采用表單提交式身份驗證模式;加密身份驗證使用單獨的Cookie名稱和路徑。另外,使用SSL連接保護信息的傳遞來對用戶輸入信息進行輸入驗證。
(二)基于ADO.NET技術(shù)的Web訪問數(shù)據(jù)庫
在ASP.NET中訪問數(shù)據(jù)庫有代碼內(nèi)聯(lián)、代碼后置、使用組件、使用存儲過程等四種方法。在新聞發(fā)布管理系統(tǒng)中采用了代碼后置、使用組件、使用存儲過程三種方法。
1.代碼后置:在代碼后置模型中,對數(shù)據(jù)庫進行操作的代碼與頁面的實際內(nèi)容相互隔離,被完全轉(zhuǎn)移到一個單獨的文件中。由美工人員負責(zé)設(shè)計Web應(yīng)用程序外觀(布局、顏色、美學(xué)等),由程序員負責(zé)編寫業(yè)務(wù)邏輯和對數(shù)據(jù)庫操作的代碼。
2.使用組件(DLL):在使用組件的方式中,不僅將對數(shù)據(jù)庫進行操作的代碼分離出來放在一個單獨的文件中,而且將該文件編譯成組件。這些組件放置在Web服務(wù)器上,即三層結(jié)構(gòu)中的業(yè)務(wù)邏輯層。在ASP.NET頁面中即可非常方便“引用”此組件,.dll文件中的內(nèi)容已經(jīng)編譯,可以大大加快程序運行速度,此外還可以保護源程序。
3.使用存儲過程:在新聞發(fā)布管理系統(tǒng)中,應(yīng)用程序使用存儲過程代替SQL語句進行數(shù)據(jù)訪問。在提高代碼安全性的同時,也加快了程序執(zhí)行效率。
(三)基于web的動態(tài)網(wǎng)頁與鏈接技術(shù)
本系統(tǒng)新聞資源是通過web數(shù)據(jù)庫管理和維護的。系統(tǒng)采用ASP.NET設(shè)計Web數(shù)據(jù)庫中間控件。ASP.NET提供了一種新的編程框架,是一種運行于服務(wù)器端的腳本引擎,可以創(chuàng)建動態(tài)、交互式且高性能的Web應(yīng)用,它包含了許多新的功能:1)web controls使創(chuàng)建HTML controls變得更為簡單;2)支持多種語言。其缺省語言是Visual Basic,而不是Vbscript,可使用編譯、事件驅(qū)動模式;3)更好的代碼控制;4)更好的升級能力。ASP.NET完全和HTML集成,具有強大的網(wǎng)絡(luò)數(shù)據(jù)庫處理功能。對于大量的、可以重復(fù)使用的信息資源,通過建立信息資源數(shù)據(jù)庫,利用ASP.NET與Web服務(wù)器建立快速鏈接。根據(jù)用戶請求靈活組織內(nèi)容,形成動態(tài)頁面。
四、結(jié)語
采用基于.NET的B/S三層體系結(jié)構(gòu)和ASP.NET軟件開發(fā)技術(shù)設(shè)計并實現(xiàn)了一種信息發(fā)布管理系統(tǒng),運行效率要遠優(yōu)于基于VBScript開發(fā)的ASP程序,系統(tǒng)的安全性也得到較大的提高。該系統(tǒng)與Internet無縫結(jié)合,實現(xiàn)了在Internet上完成信息發(fā)布的控制和管理。