2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于.NET的畢業(yè)論文數(shù)據(jù)庫系統(tǒng)的</p><p><b>  設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b>  二○一四年六月</b></p><p><b>  目 錄</b></p><p><b>  1 緒論1</b>&

2、lt;/p><p>  1.1 本文課題的背景………………………………………………………………………1</p><p>  1.1.1管理信息系統(tǒng)概述1</p><p>  1.1.2管理信息系統(tǒng)的發(fā)展歷史[2-4]1</p><p>  1.1.3管理信息系統(tǒng)的結(jié)構(gòu)2</p><p>  1.2本文課題的來源……

3、………………………………………………………………………2</p><p>  1.3本文課題的主要工作………………………………………………………………………3</p><p>  2 .NET框架技術(shù)研究4</p><p>  2.1 .NET框架(.NET Framework)簡介[5-10]4</p><p>  2.1.1通用語言

4、運(yùn)行時CLR5</p><p>  2.1.2.NET基礎(chǔ)類庫7</p><p>  2.1.3 .NET的新特性8</p><p>  2.2 新一代Web技術(shù)ASP.NET…………………………………………………………8</p><p>  2.2.1 ASP.NET的系統(tǒng)結(jié)構(gòu)10</p><p>  2

5、.2.2 ASP.NET Web窗體(Web Form)10</p><p>  2.2.3 ASP.NET的狀態(tài)管理12</p><p>  2.3數(shù)據(jù)庫訪問技術(shù)ADO.NET…………………………………………………………12</p><p>  2.4 ASP.NET中的認(rèn)證和授權(quán)…………………………………………………………14</p>&l

6、t;p>  2.4.1在ASP.NET中實(shí)現(xiàn)認(rèn)證14</p><p>  2.4.2在ASP.NET中實(shí)現(xiàn)授權(quán)17</p><p>  3 畢業(yè)論文數(shù)據(jù)庫系統(tǒng)的分析19</p><p>  3.1 系統(tǒng)的總體分析………………………………………………………………………19</p><p>  3.2系統(tǒng)的模塊功能描述……………

7、…………………………………………………20</p><p>  3.2.1上傳管理20</p><p>  3.2.2審核管理模塊20</p><p>  3.2.3論文發(fā)布模塊20</p><p>  3.2.4離校管理20</p><p>  3.2.5 后臺管理20</p><p&g

8、t;  3.3系統(tǒng)建?!?1</p><p>  4 論文管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)23</p><p>  4.1 數(shù)據(jù)庫設(shè)計(jì)…………………………………………………………………………23</p><p>  4.2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)……………………………………………………………………24</p>

9、;<p>  4.2.1 讀者查詢下載24</p><p>  4.2.2 畢業(yè)生論文上傳26</p><p>  4.2.3審核與離校手續(xù)辦理31</p><p>  4.3 母版頁設(shè)計(jì)……………………………………………………………………………41</p><p>  4.4 Web.Config配置……………………

10、………………………………………………41</p><p>  5 總結(jié)與展望42</p><p>  參 考 文 獻(xiàn)43</p><p><b>  1 緒論</b></p><p>  特色數(shù)據(jù)庫的建設(shè)也是高校圖書館在數(shù)字環(huán)境下文獻(xiàn)信息資源建設(shè)的一項(xiàng)重要內(nèi)容。本章主要介紹了數(shù)據(jù)庫系統(tǒng)的概念,根據(jù)本課題的情況,介

11、紹課題的來源及主要任務(wù)等。</p><p>  1.1 本文課題的背景</p><p>  畢業(yè)論文是反映學(xué)校教學(xué)、科研成果的一種文獻(xiàn),具有較高的學(xué)術(shù)價值和科研價值。作為高校文獻(xiàn)信息中心,高校圖書館建立本校畢業(yè)論文數(shù)據(jù)庫.對于加強(qiáng)圖書館文獻(xiàn)資源建設(shè)、推動學(xué)校學(xué)科建設(shè)、促進(jìn)高校教學(xué)、科研的交流和提高具有重要意義。</p><p>  開發(fā)基于.NET的畢業(yè)論文數(shù)據(jù)庫系

12、統(tǒng),實(shí)現(xiàn)畢業(yè)論文的收集、整理、存儲、發(fā)布與圖書館離校手續(xù)辦理功能,有利于提高圖書館工作效率與信息資源的利用率,有利于畢業(yè)論文管理工作的規(guī)范化。</p><p>  1.1.1管理信息系統(tǒng)概述</p><p>  管理信息系統(tǒng)(MIS)是一個由人、計(jì)算機(jī)和管理軟件等組成的能進(jìn)行信息的收集、傳遞、存儲、加工和使用的系統(tǒng)[1]。從管理信息系統(tǒng)的建立、功能等方面來分析,管理信息系統(tǒng)可以定義為:管理

13、信息系統(tǒng)是用系統(tǒng)思想建立起來的,以電子計(jì)算機(jī)為基本信息處理手段,以現(xiàn)代通訊設(shè)備為基本傳輸工具,且能為管理決策提供信息服務(wù)的人機(jī)系統(tǒng)。</p><p>  企業(yè)管理系統(tǒng)具有如下基本功能:</p><p> ?、贁?shù)據(jù)處理功能---提供作業(yè)數(shù)據(jù);</p><p>  ②計(jì)劃,控制功能---提供控制信息;</p><p> ?、垲A(yù)測和決策功能---提

14、供計(jì)劃和決策信息。</p><p>  1.1.2管理信息系統(tǒng)的發(fā)展歷史[2-4]</p><p>  管理信息系統(tǒng)產(chǎn)生至今已經(jīng)超過半個世紀(jì)。在這期間,管理信息系統(tǒng)經(jīng)歷三個階段的發(fā)展。</p><p>  ①產(chǎn)生階段(20世紀(jì)50年代-60年代)</p><p>  1954年美國通用電器公司首次將計(jì)算機(jī)應(yīng)用于企業(yè)中的業(yè)務(wù)數(shù)據(jù)的處理(計(jì)算薪金

15、),引起了數(shù)據(jù)處理技術(shù)的變革.隨后,西方國家的一些公司開始著手業(yè)務(wù)信息系統(tǒng)的開發(fā)。(EDP)</p><p>  ②發(fā)展階段(20世紀(jì)70年代)</p><p>  隨著數(shù)據(jù)庫技術(shù)的出現(xiàn)(60年代末,70年代初),微機(jī)的普及,計(jì)算機(jī)廣泛的用來管理和存取數(shù)據(jù)資源,產(chǎn)生了管理信息系統(tǒng),即MIS系統(tǒng)。(狹義)</p><p> ?、鄢墒祀A段(20世紀(jì)80年代)</p

16、><p>  隨著數(shù)據(jù)庫技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的進(jìn)步,管理信息系統(tǒng)也逐步走向成熟.在系統(tǒng)中已將數(shù)據(jù)處理與經(jīng)濟(jì)管理模型結(jié)合起來進(jìn)行預(yù)測和輔助決策.管理信息系統(tǒng)已進(jìn)入了決策支持系統(tǒng)(DSS系統(tǒng))發(fā)展階段。</p><p>  管理信息系統(tǒng)的層次關(guān)系見下圖1-1。</p><p>  圖 1.1信息系統(tǒng)層次關(guān)系圖</p><p>  1.1.3管理信息

17、系統(tǒng)的結(jié)構(gòu)</p><p>  傳統(tǒng)的管理信息系統(tǒng)按功能結(jié)構(gòu)可以劃分為各個不同的子系統(tǒng)。主要有財(cái)務(wù)管理子系統(tǒng),人事管理子系統(tǒng),訂貨子系統(tǒng),生產(chǎn)管理子系統(tǒng),開發(fā)管理子系統(tǒng),庫存管理子系統(tǒng),信息處理子系統(tǒng),高層管理子系統(tǒng)等。</p><p>  1.2本文課題的來源</p><p>  作為高校文獻(xiàn)信息中心,圖書館建立本校畢業(yè)論文數(shù)據(jù)庫,對加強(qiáng)圖書館文獻(xiàn)資源建設(shè)、推動學(xué)

18、校學(xué)科建設(shè)、促進(jìn)高校教學(xué)、科研的交流和提高具有重要意義。畢業(yè)論文是學(xué)生與導(dǎo)師的研究成果,具有較高的學(xué)術(shù)價值與應(yīng)用價值;畢業(yè)論文反映出了學(xué)校的科研活動的質(zhì)量、效益和科研實(shí)力,完備的收藏可反映本校的學(xué)術(shù)發(fā)展史和各個歷史時期的學(xué)術(shù)面貌,能為校史的編寫提供原始、系統(tǒng)、全面的素材和佐證材料,是學(xué)??蒲谢顒雍蛯W(xué)術(shù)水平的集體檔案;對以后的研究有很好的借鑒和指導(dǎo)作用;通過收集也可以豐富圖書館館藏資源,增加館藏特色。</p><p&g

19、t;  目前,我院尚未建立畢業(yè)論文數(shù)據(jù)庫。2013年我院培養(yǎng)的第一屆本科生即將畢業(yè),圖書館擬對本科畢業(yè)生畢業(yè)論文進(jìn)行收集、整理、數(shù)字化存儲工作。本課題指在通過對實(shí)際情況的調(diào)查分析,開發(fā)出一套適應(yīng)我院實(shí)際情況的論文數(shù)據(jù)庫系統(tǒng),提供對畢業(yè)論文收集、離校手續(xù)辦理、數(shù)字化存儲、WEB檢索與全文下載一體化服務(wù)功能,可直接應(yīng)用于圖書館實(shí)際工作中,對豐富我校的數(shù)字化教育文獻(xiàn)資源,提高我院圖書館的信息化服務(wù)效率與質(zhì)量,有重要實(shí)踐意義。</p>

20、;<p>  特色數(shù)據(jù)庫的建設(shè)也是高校圖書館在數(shù)字環(huán)境下文獻(xiàn)信息資源建設(shè)的一項(xiàng)重要內(nèi)容,通過本課題的實(shí)施,對今后我院特色數(shù)據(jù)庫建設(shè)工作,具有積極的探索和促進(jìn)作用。</p><p>  1.3本文課題的主要工作</p><p> ?。?)通過實(shí)際調(diào)查分析法,對畢業(yè)生到館辦理離校手續(xù)程序進(jìn)行調(diào)查分析,分解步驟,優(yōu)化工作流, </p><p> ?。?) 完

21、成畢業(yè)論文的收集、整理、存儲、發(fā)布工作流程工作規(guī)范與制度建設(shè);同時制訂數(shù)據(jù)整合的標(biāo)準(zhǔn)規(guī)范格式,用戶權(quán)限分配原則;完成系統(tǒng)的需求分析。</p><p> ?。?)基于以上要求,利用.NET技術(shù)完成畢業(yè)生論文數(shù)據(jù)庫系統(tǒng)的開發(fā)。</p><p>  2 .NET框架技術(shù)研究</p><p>  Microsoft.NET是微軟公司針對未來互聯(lián)網(wǎng)推出的戰(zhàn)略架構(gòu),是微軟公司

22、自MS-DOS向WINDOWS轉(zhuǎn)化后的又一次重大策略轉(zhuǎn)變,它針對了新一代的互聯(lián)網(wǎng)與新一代的系統(tǒng)平臺,囊括了幾乎所有微軟產(chǎn)品的升級換代,其目的是使網(wǎng)絡(luò)應(yīng)用程序和網(wǎng)絡(luò)服務(wù)的開發(fā)更加簡便快捷,以爭奪企業(yè)級應(yīng)用市場。.NET架構(gòu)解決了異構(gòu)平臺的數(shù)據(jù)交換問題,即應(yīng)用程序不管采用何種操作系統(tǒng)、編程語言和硬件環(huán)境,都可以通過Internet進(jìn)行通訊和共享數(shù)據(jù),從而使分散在Internet上的各種服務(wù)有機(jī)地結(jié)合起來。該架構(gòu)的核心技術(shù)主要包括:.NET框

23、架和ASP.NET。本章對這兩方面逐一進(jìn)行了討論,并對.NET技術(shù)在信息管理系統(tǒng)中的應(yīng)用進(jìn)行了研究。</p><p>  2.1 .NET框架(.NET Framework)簡介[5-10]</p><p>  .NET是一個開發(fā)和運(yùn)行軟件的新環(huán)境,便于開發(fā)基于Web的服務(wù),擁有豐富的運(yùn)行庫服務(wù)以支持用多種編程語言編寫的組件,具有跨語言和跨平臺的互操作能力。它簡化了在高度分布式Intern

24、et環(huán)境中的應(yīng)用程序開發(fā),為XML Web服務(wù)和其它應(yīng)用程序提供了一個高效安全的開發(fā)環(huán)境,并全面支持XML。</p><p>  .NET框架旨在實(shí)現(xiàn)下列目標(biāo):提供一個一致的面向?qū)ο蟮木幊汰h(huán)境,無論對象代碼是在本地存儲和執(zhí)行還是在本地執(zhí)行但在Internet上分布,或者是在遠(yuǎn)程執(zhí)行;提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境;提供一個保證代碼安全執(zhí)行的代碼執(zhí)行環(huán)境,使開發(fā)人員的經(jīng)驗(yàn)在面對類型不相同的應(yīng)用

25、程序時保持一致;按照工業(yè)標(biāo)準(zhǔn)生成所有通訊,以確?;?NET框架的代碼可與任何其他代碼集成。</p><p>  .NET的核心思想就是把軟件變成服務(wù),在采用了XML作為核心技術(shù)后各種軟件產(chǎn)品都將可能在網(wǎng)絡(luò)上運(yùn)行,不必像今天的軟件產(chǎn)品一樣必須用光盤方式發(fā)送和安裝。這種模式被稱為Web服務(wù),也是新一代互聯(lián)網(wǎng)的核心運(yùn)行模式。.NET框架主要由以下部件組成:通用語言運(yùn)行環(huán)境、Framework類庫、ASP.NET以及A

26、DD.NET,如圖2.1所示。</p><p>  圖 2.1 .NET框架體系結(jié)構(gòu)Fig 2.1 . NET Framework Architecture</p><p>  由圖2.1可以看出,通用語言運(yùn)行時以及它所提供的類庫構(gòu)成了.NET框架的基礎(chǔ)。在開發(fā)技術(shù)方面,.NET框架提供了全新的數(shù)據(jù)庫訪問技術(shù)ADO.NET,以及網(wǎng)絡(luò)應(yīng)用開發(fā)技術(shù)ASP.NET和Windows Forms;

27、在開發(fā)語言方面,.NET提供了VB,VC++,C#,Jscript等多種語言支待;而Visua1 Studio.NET則是全面支持.NET的開發(fā)工具。</p><p>  .NET Framework是在Microsoft.NET平臺上進(jìn)行開發(fā)的基礎(chǔ),它圍繞基于XML的各項(xiàng)服務(wù)展開,實(shí)現(xiàn)了代碼編譯、組件配置、程序執(zhí)行等各個層面的功能,它是一個托管(managed)、高效、安全的執(zhí)行環(huán)境。在.NET Framewo

28、rk下可以實(shí)現(xiàn)多程序語言的互操作功能,并且可將程序編譯成一種中間語言IL(Intermediate Language),使其具有跨操作系統(tǒng)平臺的功能。.NET Framework包括兩個核心模塊:通用語言運(yùn)行時CLR(Common Language Runtime)和.NET基礎(chǔ)類庫。</p><p>  2.1.1通用語言運(yùn)行時CLR</p><p>  CLR處于.NET Framew

29、ork的最底層,是.NET Framework的基礎(chǔ),是將底層平合差異進(jìn)行抽象的運(yùn)行基礎(chǔ)設(shè)施,它為C++、C#、VB.NET等多種語言提供了統(tǒng)一的運(yùn)行時環(huán)境。CLR使得某種高級語言編寫的應(yīng)用程序可以在不同的操作系統(tǒng)和硬件上運(yùn)行,而不需要按照特定的環(huán)境重寫應(yīng)用程序。另外它還提供了更多的功能和特性,比如統(tǒng)一和簡化的編程模型,用戶不必迷感于Win32API和COM;避免了DLL的版本和更新問題,從而大大簡化了應(yīng)用程序的發(fā)布和升級。為了實(shí)現(xiàn)CL

30、R對多種編程語言的支持,就需要在傳統(tǒng)的源代碼層和編譯后的本機(jī)代碼層中間添加一個代碼層。應(yīng)用程序代碼要先編譯成獨(dú)立于機(jī)器的中間語言代碼,然后再編譯成與機(jī)器對應(yīng)的本機(jī)代碼,圖2.2是.NET編譯流程圖:</p><p>  圖2.2 .NET編譯流程圖Fig 2.2 . NET compiler flow chart</p><p>  具體的編譯過程是,首先使用任一種CLR支持的編程語言編

31、寫應(yīng)用程序源代碼,然后由編譯器將源代碼編譯成裝配件(Assembly),這個裝配件包含了中間語言代碼IL和元數(shù)據(jù)(meta data)。IL代碼是所有程序及程序組件之間的溝通接口,其特點(diǎn)是獨(dú)立于操作系統(tǒng)和硬件平臺,這就意味著可以編譯成IL的程序語言是互通的。元數(shù)據(jù)用來描述裝配件中的數(shù)據(jù)類型、類、接口、結(jié)構(gòu)和所有實(shí)體。元數(shù)據(jù)還包含一個文件清單(manifest),它包含了版本信息、該裝配件調(diào)用其他裝配件的信息以及控制權(quán)限的信息,這樣就使.

32、NET應(yīng)用程序代碼具備了自描述特性。</p><p>  CLR在功能上如同一塊虛擬的CPU,它執(zhí)行IL代碼并操作數(shù)據(jù)。為了加載一個應(yīng)用程序,CLR使用文件清單來確定應(yīng)用程序所需要匯編的正確版本,并檢查IL代碼和描述它的元數(shù)據(jù),保證程序不會訪問它不具有相應(yīng)許可的內(nèi)存或其它資源,從而確認(rèn)代碼是“類型安全”的。然后CLR加載IL代碼,同時收集有關(guān)應(yīng)用程序的信息,例如:它是從那里下載或安裝的、它需要執(zhí)行什么功能、什么用

33、戶試圖運(yùn)行它、匯編是否用來自信任的開發(fā)者的數(shù)字簽名,以及進(jìn)行數(shù)字簽名后匯編是否有改動,并按管理策略決定是否允許應(yīng)用程序運(yùn)行,甚至還可告知應(yīng)用程序它無法授權(quán)申請的所有權(quán)限,并允許應(yīng)用程序自行決定是否繼續(xù)運(yùn)行等。之后,及時編譯器JIT將IL代碼以調(diào)用的對象方法為單位動態(tài)編譯成可執(zhí)行的本機(jī)代碼。通過裝配件中的元數(shù)據(jù),JIT編譯器可以了解代碼做些什么以及支持那些平臺,它能夠利用目標(biāo)機(jī)器的硬件特點(diǎn),根據(jù)平臺的具體情況對代碼進(jìn)行即時優(yōu)化操作,如合理

34、地分配CPU寄存器、通過監(jiān)控當(dāng)前的物理和虛擬內(nèi)存需求來高效地利用內(nèi)存、產(chǎn)生特定的平臺指令以充分利用實(shí)際的處理器模式等。經(jīng)過編譯后的代碼保存在內(nèi)存中,直到整個過程完成。不同的機(jī)器使用不同的JIT編譯器,所</p><p>  借助CLR可以實(shí)現(xiàn)語言的互操作性,用一種語言編寫的類能與另一種語言編寫的類集成,具體表現(xiàn)為:</p><p> ?、僖环N語言編寫的類能夠繼承另一種語言編寫的類。<

35、/p><p> ?、谝粋€類可以包含另一個類的實(shí)例,而不管它是用什么語言編寫的。</p><p> ?、蹖ο蠡?qū)ο蟮囊媚茉诜椒ㄖg傳遞。</p><p> ?、茉诓煌恼Z言之間調(diào)用方法時,能夠在調(diào)試器中調(diào)試這些方法的調(diào)用,即調(diào)試不同語言編寫的代碼。</p><p>  2.1.2.NET基礎(chǔ)類庫</p><p>  .NE

36、T基礎(chǔ)類庫由一組廣泛的、面向?qū)ο蟮?、可以繼承的、可被開發(fā)者用于任何編程語言的、可重用的類集合組成,它向程序員提供軟件組件以編寫在CLR的控制下運(yùn)行的代碼。所有的類都遵循一套命名和設(shè)計(jì)方針,從而大大減小了開發(fā)人員學(xué)習(xí)過程中的難度。這不但使.NET框架類型易于使用,而且還減少了學(xué)習(xí).NET框架的新功能所需要的時間。此外,第三方組件可與.NET框架中的類無縫集成。</p><p>  圖2.3顯示了服務(wù)框架中的一些主要

37、類庫??蚣馨ㄒ惶组_發(fā)人員希望在標(biāo)準(zhǔn)語言庫中存在的基類庫,例如:集合、輸入/輸出、字符串及數(shù)據(jù)類,還提供訪問操作系統(tǒng)的類,如網(wǎng)絡(luò)、線程、加密等類型,此外還提供了數(shù)據(jù)訪問類以及開發(fā)工具。</p><p>  圖 2.3 .net中的主要基礎(chǔ)類庫Fig 2.3 . net in the main library foundation</p><p>  .NET基礎(chǔ)類庫將核心Win32 AP

38、I最常用的功能和外掛SDK功能封裝到一個統(tǒng)一的包中,這些類由被稱為命名空間(Name Space)的機(jī)制組織起來,按照單一有序的分級組織提供了一個龐大的功能集。跟傳統(tǒng)的Windows編程相比,使用和擴(kuò)展基礎(chǔ)類庫都比較容易,這使得開發(fā)者能夠高效,快速地構(gòu)建基于下一代互聯(lián)網(wǎng)的網(wǎng)絡(luò)應(yīng)用。</p><p>  2.1.3 .NET的新特性</p><p>  .NET是一種全新的技術(shù),它給程序員

39、在進(jìn)行程序開發(fā)時提供了一種全新的編程摸式,因此.NET中也包括了很多新特性,這里只列出一些比重要的特性。</p><p> ?、僖恢碌木幊棠J?。在.NET環(huán)境中,所有的應(yīng)用程序都采用通用的面向?qū)ο缶幊堂?,不再像Windows環(huán)境中那樣,既有DLL函致也有COM對象。</p><p> ?、诤喕说木幊堂?。由于CLR的作用,在進(jìn)行編程時不再需要掌握關(guān)于COM知識了。</p>

40、<p> ?、圻\(yùn)行于多個平臺。對于任何操作平臺,只要支持NET運(yùn)行時均可以運(yùn)行NET應(yīng)用程序。</p><p> ?、苤С侄嗾Z言的綜合。在.NET環(huán)境下,代碼重用可以建立在源碼的級別上。也就是說,別人用C#語言寫的某個類可以直接在C++這樣的語言中使用。</p><p>  ⑤自動資源管理。在.NET環(huán)境下,自動資源管理功能己經(jīng)加入到CLR之中,同時由于資源回收功能的加入,在一

41、定程度上安全性也得到了保障。</p><p> ?、抟恢碌某鲥e處理方式,在.NET環(huán)境下所有的程序都采用統(tǒng)一的錯誤處理方式——產(chǎn)生異常。</p><p>  ⑦安全性。.NET提供丁一整套機(jī)制來判斷角色和確認(rèn)身份信息,并且能作到跨進(jìn)程和機(jī)器從而確保所需的代碼在遠(yuǎn)端沒有受到破壞。</p><p>  ⑧引入XML和SOAP。原有的Client/Server結(jié)構(gòu)已經(jīng)過時

42、,這樣就出現(xiàn)了了全新的B/S結(jié)構(gòu)編程模式,而XML和SOAP能使這種模式很好地工作。</p><p> ?、崛碌木幊陶Z言C#。C#像VB一樣簡單,又像C++一樣強(qiáng)大,但絕不是JAVA的克隆,它能作到與XML協(xié)議的最大程度的融合,C#的推出與.NET是密切相關(guān)的。</p><p>  2.2 新一代Web技術(shù)ASP.NET</p><p>  ASP是一種用于Web

43、服務(wù)的服務(wù)器端腳本環(huán)境,其主要特征是可以由任何編程語言來編寫,它能夠和HTML標(biāo)簽、腳本語言、COM(Component Object Model)組件等有機(jī)地結(jié)合在一起,以此來生成動態(tài)網(wǎng)頁,創(chuàng)建交互式的Web站點(diǎn)。</p><p>  當(dāng)用戶通過瀏覽器發(fā)出一個對ASP頁的請求后,Web服務(wù)器接受這一請求,調(diào)用相應(yīng)的ASP頁面,執(zhí)行其中的腳本命令,生成一個由標(biāo)準(zhǔn)HTML標(biāo)簽組成的Web頁發(fā)送給用戶。在這一過程中,

44、所有的腳本處理工作均由Web服務(wù)器完成,無需考慮客戶端的瀏覽器是否支持腳本處理的問題。服務(wù)器僅將執(zhí)行的結(jié)果而非ASP頁面本身返回給客戶端瀏覽器,這樣也就減輕了客戶端瀏覽器的負(fù)擔(dān)。但ASP頁面每次被訪問調(diào)用時,都需要在服務(wù)器端重新處理腳本,這樣就降低了交互的速度,而且ASP只是在微軟環(huán)境下獲得完全的支持,必須依賴基于Win32的組件模型,在其他平臺上擴(kuò)展困難。此外,ASP文件中充斥著HTML、JavaScript等無法調(diào)試的代碼,使得開發(fā)

45、起來比較困難,程序的可讀性差,而且會導(dǎo)致性能的損失。</p><p>  ASP.NET是一個已編譯、基于.NET的環(huán)境,可以用任何與.NET兼容的語言創(chuàng)建應(yīng)用程序。ASP.NET可以無縫的與HTML編輯器和其他編程工具一起工作,這不僅使得Web開發(fā)更加方便,而且還能提供這些工具所能提供的所有優(yōu)點(diǎn),包括開發(fā)人員可以使用將服務(wù)器控件拖到Web頁上的GUI和完全集成的調(diào)試支持功能。</p><p&

46、gt;  目前在ASP.NET中可以使用三種語言:VB.NET,C#和JavaScript。其實(shí)ASP.NET不只支持這三種語言,凡是可以編譯成MSIL(Microsoft intermediate language)的程序語言都可以成為制作ASP.NET網(wǎng)頁的語言。MSIL是一種中間語言,介于高級程序語言和機(jī)器碼之間,在ASP.NET中,我們編寫的程序語言先編譯成MSIL然后MSIL再被編譯成機(jī)器碼加以執(zhí)行。</p>&

47、lt;p>  ASP.NET網(wǎng)頁第一次被瀏覽時,會經(jīng)過兩次編譯,所以速度較慢。但是第一次被瀏覽后,MSIL會被存儲下來,當(dāng)同一網(wǎng)頁第二次被瀏覽時,只需要花費(fèi)從MSIL編譯到機(jī)器碼然后再執(zhí)行的時間,結(jié)果比ASP網(wǎng)頁執(zhí)行返回速度快。兩個工作模式的比較見圖2.4:</p><p>  圖2.4 ASP.NET和ASP編譯方式比較Fig 2.4 ASP.NET and ASP Compiler Compariso

48、n</p><p>  ASP.NET的優(yōu)勢主要表現(xiàn)在:執(zhí)行效率高,世界級的支持工具、自定義性和可擴(kuò)展性等幾個方面。ASP.NET建立在.NET框架類的基礎(chǔ)之上,它提供了由控件和基礎(chǔ)部分組成的“Web程序模版”,大大簡化了Web程序和XML Web服務(wù)的開發(fā)。</p><p>  ASP.NET是建立在微軟新一代.NET平臺架構(gòu)上,利用CLR在服務(wù)器后端為用戶提供建立強(qiáng)大的企業(yè)級Web應(yīng)用

49、服務(wù)的編程框架。ASP.NET與ASP相比有以下幾大優(yōu)勢:</p><p>  ①ASP.NET采用了高級語言如C#來進(jìn)行后臺編程,而且高級語言代碼和腳本代碼可以完全分離,使得代碼更清晰,調(diào)試性能高,提高了邏輯代碼的復(fù)用</p><p><b>  性和共享性。</b></p><p> ?、贏SP.NET是運(yùn)行在服務(wù)器后端編譯好的高級語言運(yùn)行

50、時代碼,運(yùn)行時早綁定(Early Binding)、即時編譯、本地優(yōu)化、緩存服務(wù)、基于運(yùn)行時代碼受托管與驗(yàn)證的安全機(jī)制等都為ASP.NET帶來了卓越的性能。</p><p> ?、跘SP.NET還可以利用.NET平臺架構(gòu)的諸多優(yōu)越性能,如對XML、簡單對象訪問協(xié)議SOAP(Simple ObjectAccess Protocol)、Web服務(wù)描述語言WSDL(Web Service Description Lan

51、guage)等Internet標(biāo)準(zhǔn)的強(qiáng)健支持。</p><p>  2.2.1 ASP.NET的系統(tǒng)結(jié)構(gòu)</p><p>  ASP.NET使用IIS來傳送內(nèi)容,以響應(yīng)HTTP請求,ASP.NET頁面是一個.aspx文件,圖2.5所示的是ASP.NET處理客戶請求流程圖:</p><p>  圖2.5 ASP.NET處理客戶請求流程圖Fig 2.5 ASP.NET

52、 clients deal with the request flow chart</p><p>  在ASP.NET處理過程中,可以訪問所有的.NET類、C#或其他語言創(chuàng)建的定制組件、數(shù)據(jù)庫等。實(shí)際上,運(yùn)行C#應(yīng)用程序和ASP.NET的功能一樣強(qiáng)大,在ASP.NET中使用C#就是在運(yùn)行C#程序。</p><p>  ASP.NET文件包含以下內(nèi)容:</p><p&g

53、t;  ①C#、VB.NET、JScript.NET代碼和.NET Framework目前或?qū)碇С值钠渌Z言的代碼。</p><p> ?、贖TML代碼和服務(wù)器的處理指令。</p><p>  ③內(nèi)嵌的ASP.NET服務(wù)器控件,HTML控件和用戶定制的控件。</p><p>  2.2.2 ASP.NET Web窗體(Web Form)</p>&l

54、t;p>  ASP.NET Web Form是在面向?qū)ο缶幊棠J缴显O(shè)計(jì)的,它使代碼重用成為可能,并讓程序代碼和頁面顯示內(nèi)容分開。在Visual Studio.NET環(huán)境中創(chuàng)建一個類型為C#的Web Application工程,建立一個名為Web的解決方案,其中包含兩個文件,一個是WebForm1.aspx,它是一個ASP.NET頁面,另一個是WebForm1.aspx.cs文件,它是該Web Form的C#邏輯代碼文件。在該頁面上

55、添加一個按鈕,WebForm1.aspx的核心代碼如下所示:</p><p>  <%@Page language="c#" Codebehind="WebForm1.aspx.cs"</p><p>  AutoEventWireup="false" Inherits="WebApp1.WebFrom1"

56、;%></p><p><b>  <HTML></b></p><p>  <body MS_POSITIONING="GridLayout"></p><p>  <form id="WebForm1"method="post" runat=&q

57、uot;server"></p><p>  <asp:button id="Click"Text="Click me" runat="server"></p><p>  </asp:button></p><p><b>  </form>&

58、lt;/b></p><p><b>  </body></b></p><p><b>  </HTML></b></p><p>  這頁代碼中有幾個地方需要解釋:</p><p>  ①在頂部的<%@Page%>中描述了該ASP.NET頁面后臺代碼的設(shè)

59、置情況。用Languange屬性指定使用的是C#代碼,用Codebehind屬性指定驅(qū)動頁面的邏輯代碼在那個文件中,如本例的WebForm1.aspx.cs,在這個文件中包含一個類的定義,這個類用作Web Form的基類,這個基類可以和.aspx文件中的代碼一起使用,生成最終的HTML頁面。這樣就將ASP.NET與面向?qū)ο蟮哪P吐?lián)系在一起了。</p><p> ?、谠?lt;form>元素內(nèi)包含的是各種控件

60、的顯示標(biāo)注,其中最重要的屬性是runat,將其設(shè)置為server,表示窗體的處理將在服務(wù)器端上進(jìn)行。如果沒有包含這個屬性,在服務(wù)器端就不會有任何處理。在窗體內(nèi)包含了一個按鈕控件,其語法是基于XML的,控件可以是服務(wù)器端的也可以是客戶端的,同樣通過runat屬性來控制。在WebForm1.aspx.cs文件中包含的則是程序邏輯代碼,其中有幾點(diǎn)值得注意:</p><p>  代碼的首部加載代碼默認(rèn)的應(yīng)用集,通過“us

61、ing”關(guān)鍵字來實(shí)現(xiàn)。緊接著定義了主類,它從System.Web.UI.Page繼承,每個ASP.NET頁面都是一個Page對象的實(shí)例。</p><p> ?、贏SP.NET的頁面事件。Page對象有一個默認(rèn)的構(gòu)造方法,注冊Page_Init()的一個事件處理程序,并在頁面加載的時候調(diào)用這個程序。在這個處理程序內(nèi)調(diào)用InitializeComponent()方法,把所有設(shè)計(jì)階段的代碼添加到窗體中,并對控件的事件處

62、理程序進(jìn)行注冊。</p><p>  通過上述的方式,ASP.NET將程序代碼和頁面顯示標(biāo)注隔離開來,前臺負(fù)責(zé)顯示和美觀等功能,后臺實(shí)現(xiàn)商務(wù)邏輯功能。ASP.NET引入了面向?qū)ο蟮母呒壵Z言來撰寫后臺代碼,提供了先進(jìn)的事件處理模型,易于調(diào)試且功能強(qiáng)大。</p><p>  2.2.3 ASP.NET的狀態(tài)管理</p><p>  基于HTTP技術(shù)的Web窗體是無狀態(tài)的

63、,每次將Web請求發(fā)送到服務(wù)器時,都會重新創(chuàng)建Web頁,這意味著每次往返都會丟失所有與該頁和該頁上的控件相關(guān)聯(lián)的信息。ASP.NET提供了多種方式來維護(hù)返行于客戶端和服務(wù)器之間的狀態(tài)信息,其中最常用的是Cookie和Session。</p><p>  Cookie用于在客戶端上存儲少量的經(jīng)常更改的信息,這些信息與請求一起發(fā)送到服務(wù)器,它不需要任何服務(wù)器資源。Cookie是基于文本結(jié)構(gòu)的,它可以在瀏覽器會話結(jié)束時

64、滅亡,也可以在客戶端計(jì)算機(jī)上無限期存在,這取決于客戶端的時間限制。.NET基礎(chǔ)類庫使用了同名的Cookie類來生成和管理客戶端的Cookie。</p><p>  Session是由服務(wù)器管理的會話狀態(tài),它可存儲復(fù)雜的數(shù)據(jù)類型且擁有較高的安全性。Session最常見的用途是與Cookie一起向Web應(yīng)用程序提供用戶標(biāo)識,會話狀態(tài)可用于不支持HTTP Cookie的瀏覽器,因?yàn)樗仟?dú)立于客戶端的。.NET基礎(chǔ)類庫的

65、HttpSessionState類提供了對會話狀態(tài)值以及會話生存期的訪問和控制。</p><p>  2.3數(shù)據(jù)庫訪問技術(shù)ADO.NET</p><p>  微軟推出的.NET框架創(chuàng)立了一種取代COM和COM+的組件模型,ADO.NET是微軟推出的在.NET Framework下全新的數(shù)據(jù)訪問編程模型及數(shù)據(jù)訪問技術(shù),它構(gòu)建在以前的數(shù)據(jù)訪問功能之上,并替代現(xiàn)有的、廣泛應(yīng)用的數(shù)據(jù)訪問接口。&l

66、t;/p><p>  ADO.NET為現(xiàn)在的應(yīng)用程序?qū)Ω鞣N類型的數(shù)據(jù)存儲像各種數(shù)據(jù)庫、文本文件、XML、某些特定領(lǐng)域如Microsoft Exchange Server的電子郵、日歷,ActiveDirectory上基于Window的服務(wù)器存儲的系統(tǒng)用戶、權(quán)限等信息,Spreadsheets的訪問提供了統(tǒng)一的一致的單一訪問方式,因而其更有邏輯,更加結(jié)構(gòu)化。圖2.6展示了ADO.NET的軟件層次模型圖。</p&g

67、t;<p>  圖2.6 ADO.NET層次結(jié)構(gòu)Fig 2.6 ADO.NET hierarchical structure</p><p>  ADO.NET數(shù)據(jù)提供者是處理特定類型的數(shù)據(jù)庫的類“集”。不同類型數(shù)據(jù)提供者是不同的一組類,實(shí)現(xiàn)各自訪問特定類型的數(shù)據(jù)存儲的功能,這也是ADO.NET對各種數(shù)據(jù)存儲類型作的優(yōu)化。數(shù)據(jù)提供者為了被調(diào)用必須提供一組基本的功能,但特殊的數(shù)據(jù)提供者可以有許多額外

68、的屬性和方法,他們對于被訪問的數(shù)據(jù)存儲器的類型來說是唯一的。</p><p>  在Web開發(fā)中,數(shù)據(jù)庫訪問技術(shù)是其關(guān)鍵技術(shù)之一。微軟早期提供了ADO(ActiveX Data Object)技術(shù)來實(shí)現(xiàn)數(shù)據(jù)庫訪問,ADO通過Connection,Command和RecordSet對象對數(shù)據(jù)庫進(jìn)行操作,當(dāng)在不同應(yīng)用程序或組件之間傳送RecordSe時,必須將參數(shù)和數(shù)據(jù)包裝成標(biāo)準(zhǔn)的二進(jìn)制格式,再適當(dāng)?shù)剡M(jìn)行數(shù)據(jù)類型轉(zhuǎn)換

69、,這樣就造成了數(shù)據(jù)訪問速度慢、效率低。此外,ADO的數(shù)據(jù)存取處理主要依賴于兩層結(jié)構(gòu),并且是基于連接的。斷開連接,數(shù)據(jù)就不能進(jìn)行存取操作。</p><p>  ADO.NET是在.NET Framework下對ADO技術(shù)的擴(kuò)展,ADO.NET的數(shù)據(jù)處理采用三層體系結(jié)構(gòu),并且是面向無連接的模式,其體系結(jié)構(gòu)如圖2-7所示:</p><p>  圖 2.7 ADO.NET體系結(jié)構(gòu)圖</p&g

70、t;<p>  ADO.NET提出了一個全新的數(shù)據(jù)訪問概念數(shù)據(jù)集DataSet,DataSet不依賴于數(shù)據(jù)庫鏈路,它通過數(shù)據(jù)適配器DataAdapter來訪問數(shù)據(jù)庫,DataAdapter是數(shù)據(jù)源和DataSet之間的“橋”,DataAdapter能自動將對數(shù)據(jù)的各種操作變換到數(shù)據(jù)源相關(guān)的SQL語句上。DataSet在內(nèi)部是用XML來描述數(shù)據(jù)的,由于XML是一種平臺無關(guān)、語言無關(guān)的數(shù)據(jù)描述語言,用它可描述復(fù)雜的數(shù)據(jù)關(guān)系。此

71、外,DataSet與同樣是非連接RecordSet相比,它還包含了數(shù)據(jù)表之間的聯(lián)系,DataSet實(shí)際上是在內(nèi)存中構(gòu)建了一個關(guān)系數(shù)據(jù)庫模型,所以它有更豐富的編程模型。這樣,程序員在編程時可以屏蔽數(shù)據(jù)庫之間的差異,從而獲得一致的編程模型。</p><p>  ADO.NET設(shè)計(jì)了兩套數(shù)據(jù)庫通訊程序:一種是OLEDB Data Provider,它可以連接到任何支持對象鏈接和嵌入式數(shù)據(jù)庫OLEDB(Object Li

72、nking and Embedding Database)驅(qū)動程序的數(shù)據(jù)庫;另一種是SQL Server Data Provider,它是專為與SQL Server7及以后版本通訊而設(shè)計(jì)的。假設(shè)conn代表數(shù)據(jù)庫連接實(shí)例,select代表一條SQL語句,下面分別用這兩種方式來訪問數(shù)據(jù)庫:</p><p> ?、儆肙LEDB Data Provider。</p><p>  OleDbDat

73、aAdapter adapter=new OleDbDataAdapter(select,conn);</p><p>  DataSet ds=new DataSet();</p><p>  Adapter.Fill(ds);</p><p> ?、谑褂肧QLServer Data Provider</p><p>  SqlDataAd

74、apter adapter=new SqlDataAdapter(select,conn);</p><p>  DataSet ds=new DataSet();</p><p>  adapter.Fill(ds);</p><p>  2.4 ASP.NET中的認(rèn)證和授權(quán)</p><p>  2.4.1在ASP.NET中實(shí)現(xiàn)認(rèn)證<

75、/p><p>  ASP.NET提供了三種用戶認(rèn)證方法,Windows認(rèn)證、Passport認(rèn)證和Forms認(rèn)證。Windows認(rèn)證是通過IIS實(shí)現(xiàn)的,只需稍微修改(甚至不修改)頁面即可實(shí)現(xiàn);Passport和Forms認(rèn)證類似:后者是在服務(wù)器上實(shí)現(xiàn)的,而前者是通過微軟公司的訂閱服務(wù)實(shí)現(xiàn)的[11]。</p><p><b>  Windows認(rèn)證</b></p>

76、;<p>  請求ASP.NET頁面時,客戶首先遇到的是Web服務(wù)器IIS。此時IIS將對用戶進(jìn)行認(rèn)證。當(dāng)IIS處理認(rèn)證工作時,它可以直接與操作系統(tǒng)(如Windows 2000)進(jìn)行通信,對用戶的證件進(jìn)行驗(yàn)證。圖2.8說明了這種IIS Web應(yīng)用程序體系結(jié)構(gòu)。</p><p>  圖2.8 ASP.NET的安全體系結(jié)構(gòu)Fig 2.8 ASP.NET Security Architecture<

77、;/p><p>  IIS賦予的身份是由Windows用戶帳戶定義的,因此被稱為Windows認(rèn)證。系統(tǒng)通過在web.config文件中使用下面的代碼行來啟用這種認(rèn)證方法:</p><p>  <authentication mode=“Windows”/></p><p>  IIS使用三種不同類型的Windows認(rèn)證:Basic、Digest和NTLM(

78、集成的Windows認(rèn)證,Integrated Windows Authentication)。以Basic認(rèn)證為例,認(rèn)證步驟如下:</p><p>  1)客戶向服務(wù)器請求被限制的資源;</p><p>  2)Web服務(wù)器以“401 Unauthorized”進(jìn)行響應(yīng);</p><p>  3)Web瀏覽器收到這條消息,并詢問用戶的證件(通常是用戶名和密碼);&

79、lt;/p><p>  4)Web瀏覽器通過這些證件來訪問服務(wù)器資源:</p><p>  5)如果證件無效,則重新回到第2步;</p><p>  6)通過認(rèn)證后,瀏覽器便能夠訪問這些資源。</p><p>  使用Basic認(rèn)證時,用戶名和密碼都是以純文本的方式通過網(wǎng)絡(luò)傳遞給服務(wù)器,存在安全隱患。Digest認(rèn)證的工作原理與Basic認(rèn)證類似

80、,但對傳送的用戶名和密碼進(jìn)行加密。NTLM認(rèn)證時,將不會提供用戶輸入證件,在瀏覽器連接到服務(wù)器后,它便將加密后的、用戶登錄計(jì)算機(jī)時使用的用戶名和密碼信息發(fā)送給服務(wù)器。采用哪種Windows認(rèn)證方法,在IIS中做相應(yīng)設(shè)置即可。</p><p><b> ?、诒韱握J(rèn)證</b></p><p>  使用表單驗(yàn)證時,用戶被引導(dǎo)到Web站點(diǎn)的一個登錄表單,通過該表單,用戶可以提

81、供其證件。如果應(yīng)用程序根據(jù)自定義的方案認(rèn)可了證件,ASP.NET將在運(yùn)行瀏覽器的計(jì)算機(jī)上創(chuàng)建一個認(rèn)證Cookie,該Cookie包含某種格式的證件或可用來獲得證件的字符串。以后,整個應(yīng)用程序都將使用該Cookie來進(jìn)行授權(quán)。整個過程步驟如下:</p><p>  1)客戶向站點(diǎn)請求被保護(hù)的頁面;</p><p>  2)如果請求沒有包含有效的認(rèn)證Cookie,Web服務(wù)器將把用戶重定向到w

82、eb.config文件中Authentication標(biāo)簽的loginURL屬性中指定的URL,該URL包含一個供用戶登錄的表單;</p><p>  3)證件被輸入到表單中,并通過表單傳送被提交;</p><p>  4)如果證件有效,ASP.NET將在客戶機(jī)上創(chuàng)建一個認(rèn)證Cookie;</p><p>  5)用戶便能夠被重定向到最初請求的頁面。</p>

83、;<p>  啟用表單驗(yàn)證需要在web.config中進(jìn)行如下設(shè)置:</p><p>  <configuration></p><p>  <system.web></p><p>  <authentication mode="Form"></p><p>  <

84、forms name="name" loginUrl="loginForm"></p><p>  <credentials PasswordFormat="MDS")</p><p>  <user name="username" password="pwd"/>&

85、lt;/p><p>  </credentials></p><p><b>  </forms></b></p><p>  </authentication></p><p>  </system.web></p><p>  </config

86、uration></p><p>  其中Credentials屬性可以省略,該屬性提供了用于認(rèn)證的用戶名和密碼定義。Credentials配置段包含認(rèn)證時ASP.NET使用的有效用戶身份。</p><p>  PasswordFormat指定了發(fā)送證件給服務(wù)器時采用的加密方法,該屬性的取值可以是clear,MDS和SHAI.Clear表示不加密,MDS和SHAI是兩種加密算法。Us

87、er元素指定了有效的用戶證件。設(shè)置好web.config,在代碼中控制驗(yàn)證需要用到FormsAuthentication對象,該對象有四個重要的方法:</p><p>  1) SetAuthCookie:設(shè)置認(rèn)證Cookie;</p><p>  2) RedirectFormLoginPage:設(shè)置認(rèn)證Cookie,同時將用戶重定向到最初請求的URL;</p><p

88、>  3) GetAuthCookie:使用認(rèn)證信息創(chuàng)建一個HttpCookie對象;</p><p>  4) Sighout:刪除認(rèn)證Cookie,將用戶注銷。</p><p>  表單認(rèn)證的功能非常強(qiáng)大,在實(shí)現(xiàn)認(rèn)證方面提供了非常大的靈活性。由于設(shè)置包含在web.config文件中,因此這種認(rèn)證方法易于實(shí)現(xiàn),系統(tǒng)也可以將用戶信息放在數(shù)據(jù)庫中,并創(chuàng)建自定義的子程序來認(rèn)證用戶。辦公自

89、動化系統(tǒng)正是利于了表單認(rèn)證的這些特點(diǎn),采用了表單認(rèn)證的方式。</p><p> ?、跴assport認(rèn)證</p><p>  Passport認(rèn)證是微軟公司提供的一種集中式認(rèn)證服務(wù),其工作原理與表單認(rèn)證非常相似,只是不必要創(chuàng)建任何自定義的功能。使用Passport認(rèn)證的具體步驟如下:</p><p>  1)客戶向站點(diǎn)請求安全頁面:</p><p

90、>  2)如果請求不含有效的Passport認(rèn)證Cookie,則Web服務(wù)器將用戶重定向到Passport登錄服務(wù),同時將一些關(guān)于請求的信息加密后,再發(fā)送給Passport服務(wù)。</p><p>  3)用戶將看到Passport登錄站點(diǎn)的一個登錄表單,用戶在其中輸入證件,并通過表單發(fā)送(使用SSL加密)來提交.</p><p>  4)如果證件有效,Passport服務(wù)將創(chuàng)建一個認(rèn)

91、證證書,并將其放在查詢字符串中。然后用戶將被重定向到原來的站點(diǎn)。</p><p>  5)當(dāng)服務(wù)器在查詢字符串中找到認(rèn)證證書后,將為該用戶創(chuàng)建一個認(rèn)證Cookie。Passport認(rèn)證服務(wù)并不創(chuàng)建認(rèn)證Cookie,這項(xiàng)工作是由原來的Web服務(wù)器來完成的。Passport是一種實(shí)現(xiàn)安全性的簡單方式,可以將站點(diǎn)的安全性托付給該服務(wù),用戶用有效的通行證書就可以使用同一用戶名和密碼登錄任何PassPort站點(diǎn)。但是使用P

92、assport認(rèn)證,站點(diǎn)必須是微軟的Passport服務(wù)的成員,要成為其成員需要付費(fèi)。</p><p>  2.4.2在ASP.NET中實(shí)現(xiàn)授權(quán)</p><p>  授權(quán)旨在確定通過認(rèn)證的用戶可以訪問哪些資源。在ASP.NET中,授權(quán)的方式有兩種:文件授權(quán)和URL授權(quán)[15]。</p><p>  文件授權(quán)依賴于Windows的訪問控制列表ACL(Access Co

93、ntrol List),在單文件和目錄的基礎(chǔ)上確定用戶的權(quán)限。使用文件授權(quán)時,ASP.NET與Windows交互,將用戶身份與ACL關(guān)聯(lián)起來。當(dāng)通過認(rèn)證的用戶試圖訪問Web服務(wù)器上的文件時,Windows將檢查相應(yīng)的ACL,以確定該角色或身份是否被允許查看該文件。這是一種實(shí)現(xiàn)安全性的簡單方式:文件認(rèn)證和模擬一起來確定ACL權(quán)限。但這種方式有時不易管理,如果Web站點(diǎn)包含多個目錄、多個文件夾和文件時,設(shè)置ACL是一件十分繁瑣的工作。因此,

94、一般情況下采用URL授權(quán)方式。</p><p>  URL授權(quán)方式控制對資源的訪問權(quán)限。它可以允許某些用戶和角色對資源擁有存取權(quán)限,也可以拒絕另一些用戶和角色對資源的存取操作。甚至,它還可以決定存取資源的HTTP方法(例如:不允許GET,允許POST等)。</p><p>  啟用URL授權(quán)必須在web.config文件中設(shè)置一些屬性。對于授權(quán)用戶和角色的控制,ASP.NET通過配置文件w

95、eb.config中的<authorization>標(biāo)識段來實(shí)現(xiàn)。<allow>標(biāo)識表示允許對資源的訪問,<deny>標(biāo)識表示拒絕對資源的訪問。它們都有兩個屬性,users和roles分別表示用戶和角色。</p><p>  <configuration></p><p>  <security></p><p

96、>  <authorizatioh></p><p>  <allow users=“administrator”/></p><p>  <allow roles=“Admins”/></p><p>  <deny users=“*”></p><p>  </authoriza

97、tion></p><p>  </security></p><p>  </configuration></p><p>  上面這段程序表明:除了用戶“adminstrator”和角色“Admins”,其他用戶對本站點(diǎn)的訪問將被拒絕。也就是說用戶“adminstrator”和角色“Admins”分別是該站點(diǎn)的授權(quán)用戶和授權(quán)角色。&

98、lt;/p><p>  3 畢業(yè)論文數(shù)據(jù)庫系統(tǒng)的分析</p><p>  3.1 系統(tǒng)的總體分析</p><p>  一般來講,畢業(yè)論文收集與畢業(yè)生圖書館離校手續(xù)的辦理,分別由圖書館兩個不同部門負(fù)責(zé)管理,學(xué)生需要分別到圖書館辦理相應(yīng)手續(xù),這不但給學(xué)生帶來了麻煩,也增加了圖書館的管理負(fù)擔(dān)。 </p><p>  我們希望畢業(yè)論文管理系統(tǒng),能實(shí)現(xiàn)對

99、論文收集、離校手續(xù)辦理、數(shù)字化存儲、WEB檢索與全文下載一體化服務(wù)功能,減化管理流程,提高工作效率。</p><p>  通過實(shí)際調(diào)查分析法,對畢業(yè)生到館辦理離校手續(xù)程序進(jìn)行調(diào)查分析,分解步驟,優(yōu)化工作流,優(yōu)化后的流程圖如下圖:</p><p>  圖 3.1優(yōu)化后的工作流</p><p>  系統(tǒng)總體業(yè)務(wù)流程設(shè)計(jì):畢業(yè)生首先通過網(wǎng)絡(luò)提交畢業(yè)論文電子版,然后到畢業(yè)

100、生到圖書館簽論文授權(quán)書與提交紙質(zhì)畢業(yè)論文,圖書館工作人員核對相關(guān)信息、辦理離校手續(xù),最后畢業(yè)論文發(fā)布,可通WEB檢索與下載。</p><p>  考慮到借書證與校園一卡通集成,一卡通即是借書證,圖書管理系統(tǒng)讀者信息是從一卡通系統(tǒng)中獲取,畢業(yè)生在上傳時通過輸入身份證進(jìn)行認(rèn)證,辦理離校時需要更改圖書館管理系統(tǒng)中相關(guān)數(shù)據(jù)</p><p>  通過對用戶需求的分析,將系統(tǒng)功能劃分為五個模塊:上傳管

101、理,審核管理,離校管理,論文發(fā)布,后臺管理。系統(tǒng)功能模塊劃分見圖。系統(tǒng)功能模塊劃分見圖3.2。</p><p>  圖 3.2系統(tǒng)的總體模塊圖</p><p>  3.2系統(tǒng)的模塊功能描述</p><p><b>  3.2.1上傳管理</b></p><p>  模塊功能描述:學(xué)生通過唯一識別碼身份證號進(jìn)入論文上傳頁

102、面,系統(tǒng)自動從圖書管理信息系中獲取學(xué)生姓名等相關(guān)信息、學(xué)生完成論文相關(guān)信息(標(biāo)題、導(dǎo)師、載要等)、上傳論文電子版,提交。</p><p>  3.2.2審核管理模塊</p><p>  模塊功能:圖書館工作人員,審核學(xué)生提交的相關(guān)信息,對比紙質(zhì)版論文與電子版論文是否如一;添加論文授權(quán)書相關(guān)信息;添加紙質(zhì)版論文相關(guān)信息。</p><p>  3.2.3論文發(fā)布模塊&l

103、t;/p><p>  模塊功能描述:審核通的論文,可WEB檢索與全文下載。</p><p><b>  3.2.4離校管理</b></p><p>  模塊功能:圖書館工作人員,讀取借書系統(tǒng)中相關(guān)信息,如沒有借書與欠款,辦理高校手續(xù),注銷借書卡。</p><p>  3.2.5 后臺管理</p><p&g

104、t;  模塊功能:用戶管理、用戶權(quán)限管理。管理系統(tǒng)用戶,分配用戶權(quán)限(角色)</p><p><b>  3.3系統(tǒng)建模</b></p><p>  在前面分析的基礎(chǔ)上,創(chuàng)建用例圖,對系統(tǒng)的部分模塊進(jìn)行活動圖(Activity Diagram),序列圖(Sequence Diagram)的建模,進(jìn)一步分析建筑合同管理信息系統(tǒng)。對們一步理解確定系統(tǒng)的需求很有幫助?;顒訄D

105、既可以用來描述操作(對象的方法)的行為,也可以描述對象內(nèi)部的工作過程?;顒訄D依據(jù)對象狀態(tài)的變化來捕捉動作與動作的結(jié)果。序列圖用來描述對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。</p><p>  圖4.10 簽定合同用例圖</p><p>  圖 4.13 后臺管理活動圖</p><p>  4 論文管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p>&l

106、t;p><b>  4.1 數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  對于管理信息系統(tǒng)來講,數(shù)據(jù)庫是所有功能的核心。數(shù)據(jù)庫的設(shè)計(jì)是數(shù)據(jù)生存周期中一個重要的階段,其質(zhì)量對數(shù)據(jù)庫系統(tǒng)影響頗大,因此數(shù)據(jù)庫的設(shè)計(jì)是管理信息系統(tǒng)開發(fā)中一個至關(guān)重要的環(huán)節(jié)。</p><p>  E-R模型不是面向?qū)崿F(xiàn),而是面向現(xiàn)實(shí)世界的。設(shè)計(jì)這種模型的出發(fā)點(diǎn)是有效的和自然的模擬現(xiàn)實(shí)世界。根據(jù)需

107、求分析,畫出系統(tǒng)E-R模型。</p><p>  在數(shù)據(jù)庫的設(shè)計(jì)過程中,應(yīng)該遵循以下四個原則:真實(shí)性、冗余性、簡單性、選擇合適的數(shù)據(jù)類型。</p><p>  數(shù)據(jù)的標(biāo)準(zhǔn)化有助于消除數(shù)據(jù)庫中的數(shù)據(jù)冗余。標(biāo)準(zhǔn)有很多種形式,ThirdNormal Form(3NF)通常被認(rèn)為在性能,擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了最好的平衡。本系統(tǒng)采用SQL Server 2008,在設(shè)計(jì)數(shù)據(jù)表時遵守3NF原則。

108、</p><p>  授權(quán)管理所用表的關(guān)系圖:</p><p>  圖 4.1授權(quán)管理所用表關(guān)系圖</p><p>  為提高系統(tǒng)訪問數(shù)據(jù)庫及獲取數(shù)據(jù)的速度,普遍在數(shù)據(jù)庫中使用存儲過程。存儲過程的使用,對提高系統(tǒng)性能有很大的幫助。存儲過程是實(shí)現(xiàn)三層服務(wù)體系的關(guān)鍵技術(shù)之一,對系統(tǒng)以后的維護(hù)也具有極大的便利性。</p><p>  4.2 系統(tǒng)設(shè)

109、計(jì)與實(shí)現(xiàn)</p><p>  本系統(tǒng)使用Microsoft Visual Studio 2010作用開發(fā)工具,利用asp.net技術(shù)和C#語言完成系統(tǒng)實(shí)現(xiàn)。</p><p>  4.2.1 讀者查詢下載</p><p><b>  界面如圖:</b></p><p>  圖 4.2 論文查詢下載頁面</p>

110、<p>  此頁面為畢業(yè)論文數(shù)據(jù)庫系統(tǒng)的默認(rèn)頁面,用戶在此可查詢下載已上傳的畢業(yè)論文。在文本框輸入內(nèi)容,點(diǎn)擊搜索按鈕,系統(tǒng)在下面的表中顯示查詢內(nèi)容;點(diǎn)擊“全文下載”欄中的鏈接,可下載論文文件,如圖:</p><p>  點(diǎn)擊“查看詳情”按鈕,可顯示該論文詳細(xì)信息,如圖</p><p><b>  核心代碼如下:</b></p><p&g

111、t;  Default.aspx.cs</p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.Linq;</p><p>  using System.Web;</p><p>  using

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論