完整版)《Web程序設(shè)計(jì)》課后題答案_第1頁(yè)
完整版)《Web程序設(shè)計(jì)》課后題答案_第2頁(yè)
完整版)《Web程序設(shè)計(jì)》課后題答案_第3頁(yè)
完整版)《Web程序設(shè)計(jì)》課后題答案_第4頁(yè)
完整版)《Web程序設(shè)計(jì)》課后題答案_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、ASP.NET Web 程序設(shè)計(jì)習(xí)題與練習(xí)答案第 1 章 習(xí)題與練習(xí)1. 簡(jiǎn)答題1)什么是 MSDN ,它包含哪些功能? 答案:MSDN( Microsoft Developer Network)是 Microsoft 公司面向軟件開(kāi)發(fā)者的一種信息服務(wù)。MSDN實(shí)際上是一個(gè)以 Visual Studio 和Windows平臺(tái)為核心整合的開(kāi)發(fā)虛擬社區(qū), 包括技術(shù)文檔、在線(xiàn)電子教程、網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室、微軟產(chǎn)品下載(幾乎全部的操作系統(tǒng)、服 務(wù)器程序、 應(yīng)用程序和開(kāi)發(fā)程序的正式版和測(cè)試版, 還包括各種驅(qū)動(dòng)程序開(kāi)發(fā)包和軟件開(kāi)發(fā) 包)、Blog、BBS MSDN WebCast 與 CMP 合作的 MSDN

2、 雜志等等 一系列服務(wù)。2)Visual Studio 內(nèi)置服務(wù)器的作用是什么?答案:Visual Studio 開(kāi)發(fā)服務(wù)器是在 Windows 操作系統(tǒng)(包括 Home Edition 版本)上本地 運(yùn)行的 Web 服務(wù)器。與 IIS Express 一樣,它是專(zhuān)門(mén)構(gòu)建用于在本地計(jì)算機(jī)上運(yùn)行 ASP.NET 的。它不會(huì)處理針對(duì)其他計(jì)算機(jī)的請(qǐng)求。此外,它也不會(huì)提供應(yīng)用程序范圍外的 文件。 Visual Studio 開(kāi)發(fā)服務(wù)器是一種方法,可用于在向運(yùn)行 IIS 的生產(chǎn)服務(wù)器發(fā)布網(wǎng)站 或應(yīng)用程序之前在本地進(jìn)行測(cè)試。3)Visual Studio 2012 開(kāi)發(fā)環(huán)境中主要包含哪些窗口?答案:? 工

3、具欄。提供用于格式化文本、查找文本等的命令。一些工具欄只有在“設(shè)計(jì)” 視圖下才可用。? “解決方案資源管理器”窗口。顯示網(wǎng)站中的文件和文件夾。? “文檔” 窗口。 顯示在視圖選項(xiàng)卡窗口中處理的文檔。 單擊選項(xiàng)卡可以實(shí)現(xiàn)在文 檔間切換。? “屬性”窗口。允許您更改頁(yè)、 HTML 元素、控件及其他對(duì)象的設(shè)置。? 視圖選項(xiàng)卡。展示同一文檔的不同視圖。“設(shè)計(jì)”視圖是一種近似 WYSIWYG的編輯界面。 “源”視圖是頁(yè)的 HTML 編輯器。 “拆分”視圖可同時(shí)顯示文 檔的“設(shè)計(jì)”視圖和“源”視圖。如果要在“設(shè)計(jì)”視圖中打開(kāi)網(wǎng)頁(yè),需在“工 具”菜單上,單擊“選項(xiàng)”,選擇“ HTML設(shè)計(jì)器”節(jié)點(diǎn),然后更改“

4、起始頁(yè)位 置”選項(xiàng)。? 工具箱。提供可以拖到頁(yè)上的控件和 HTML 元素。 “工具箱”元素按常用功 能分組。? 服務(wù)器資源管理器 / 數(shù)據(jù)庫(kù)資源管理器。 用于顯示數(shù)據(jù)庫(kù)連接。 如果未顯示 “服 務(wù)器資源管理器” ,可以在“視圖”菜單上單擊“服務(wù)器資源管理器”或“數(shù)據(jù) 庫(kù)資源管理器” 。?4)編寫(xiě)ASP.NET應(yīng)用程序的步驟是什么?? 答案:? (1)創(chuàng)建一個(gè)新的 ASP.NET Web 窗體頁(yè)?(2)將頁(yè)面添加到網(wǎng)站?(3)向頁(yè)中添加靜態(tài)文本?( 4)添加控件? (5)對(duì) Button 控件編程5)請(qǐng)對(duì)不同調(diào)試方法進(jìn)行分析比較。答案:(1) 使用調(diào)試器:?jiǎn)?dòng)默認(rèn)瀏覽器并加載指定的起始頁(yè)。在調(diào)試

5、器中運(yùn)行頁(yè)可以逐 行掃描代碼,并利用其他分析工具和運(yùn)行時(shí)信息來(lái)進(jìn)行調(diào)試。如果 Visual Studio 發(fā)現(xiàn)關(guān)鍵 文件已更改,它同樣在啟動(dòng)包含指定起始頁(yè)的瀏覽器之前生成項(xiàng)目。(2) 不用調(diào)試器:允許以在開(kāi)發(fā)工具上下文以外的一般運(yùn)行狀況運(yùn)行代碼,這樣這 些工具不會(huì)提供可用的運(yùn)行時(shí)信息。如果 Visual Studio 發(fā)現(xiàn)關(guān)鍵文件已更改,將在啟動(dòng)包 含指定起始頁(yè)的瀏覽器之前生成項(xiàng)目。( 3)在瀏覽器中查看:編譯項(xiàng)目并打開(kāi)從 “解決方案資源管理器 ”中選擇的 Web 頁(yè)。 項(xiàng)目被編譯并在 Visual Studio 內(nèi)的默認(rèn)瀏覽器中運(yùn)行。2. 操作題請(qǐng)自定義你的集成開(kāi)發(fā)環(huán)境,將所有文本的顏色改成

6、紅色。答案:?(1)在菜單欄中,選擇工具T選項(xiàng)。?(2 )在選項(xiàng)列表中選擇環(huán)境t 字體和顏色。(3) 在項(xiàng)前景列表中,選擇“紅色” ,然后選擇 確定按鈕。3. 程序設(shè)計(jì)題創(chuàng)建一個(gè)指向目標(biāo)文件夾“ d:CompiledSite ”的 IIS 虛擬目錄。答案:( 1 )打開(kāi)“ Internet Information Services (IIS)管理器”對(duì)話(huà)框。( 2)在“連接”窗格中,展開(kāi)服務(wù)器名稱(chēng),然后展開(kāi)“站點(diǎn)”。( 3)右擊“默認(rèn)網(wǎng)站” ,然后選擇“添加虛擬目錄” 。此時(shí)將出現(xiàn)“添加虛擬 目錄”對(duì)話(huà)框。( 4)在“別名”框中,輸入CompiledWebSite 。( 5)在“物理路徑”框中

7、,輸入d:CompiledSite 。單擊“確定” 。(6)在 IIS 管理器的“連接”窗格中,右擊新的虛擬目錄,然后選擇“轉(zhuǎn)換為應(yīng)用程序” 。此時(shí)將出現(xiàn)“添加應(yīng)用程序”對(duì)話(huà)框。單擊“確定” 。第 2 章習(xí)題與練習(xí)1. 選擇題。( 1 ) - ( 5) BCBCD (6)-(10)BACAD2. 填空題。(1) ( 2)超鏈接 ,加粗( 3 ) ( 4) Name , Method , Post, Action( 5)與歷史清單有關(guān)的信息3. 程序題。 圖書(shū)分類(lèi)表 圖書(shū)分類(lèi)表 類(lèi)別 書(shū)名 價(jià)格 計(jì)算機(jī) web 程序設(shè)計(jì) 41C#開(kāi)發(fā) 29 文學(xué) 奮斗 35 日期: 2013-03-08第 3

8、章習(xí)題與練習(xí)一、判斷題1. (對(duì) ) 2. (對(duì) ) 3. (錯(cuò) ) 4. (錯(cuò) ) 5. (錯(cuò) )二、選擇題A D A D C A A D D C A B C C B C A D D D A B D B D B C A A三、填空題(共 6 小題)1、(xhtml)2、div 是塊元素, span 是行內(nèi)或內(nèi)聯(lián)元素3、color:#666;5、( xhtml 或 xml,css )第 4 章習(xí)題與練習(xí)一 選擇題CDABCD二 填空題(1)%Master% 、 ContentPlaceHolder(2)App_Theme 、服務(wù)器控件(3)外觀文件、 .CSS 文件、圖像和其他資源(4)頁(yè)面指

9、令級(jí)、應(yīng)用程序級(jí)、文件夾級(jí)(5)FindControl ()方法和 MasterType 指令(6)SkinID三 簡(jiǎn)答題(1)答:母版頁(yè)是指可以再同一站點(diǎn)的多個(gè)頁(yè)面中共享使用的特殊網(wǎng)頁(yè)。用戶(hù)可以使用母 版頁(yè)建立一個(gè)通用的版面布局或者使用母版頁(yè)在多個(gè)頁(yè)面中顯示一些公共的內(nèi)容。 引用母版 頁(yè)的 Web 窗體頁(yè)面稱(chēng)為內(nèi)容頁(yè)。(2)答:內(nèi)容頁(yè)與普通的Web 窗體頁(yè)面有所不同,主要體現(xiàn)在:在 % Page%指令中增加了 Title=和 MasterPageFile=/MasterPage.master兩個(gè)指令。在內(nèi)容頁(yè)中不包含 html、head、title、body、form等Web元素,因?yàn)檫@ 些

10、元素都被放置在母版頁(yè)中。在內(nèi)容頁(yè)中包含有若干個(gè)asp:Co ntent 和/asp:Content標(biāo)記,而且內(nèi)容頁(yè)的所有元素都要包含在Content控件中。(3 )答:同一類(lèi)型控件的外觀分為默認(rèn)外觀和命名外觀兩種:默認(rèn)外觀:不設(shè)置控件的SkinID 屬性,它自動(dòng)應(yīng)用于同一類(lèi)型的所有控件。在同一主題中針對(duì)同一類(lèi)型的控件只能 有一個(gè)默認(rèn)外觀。 命名外觀: 如果同一類(lèi)型控件有不同于默認(rèn)外觀的屬性設(shè)置時(shí), 可以通 過(guò)設(shè)置控件的 SkinID 屬性來(lái)解決。答:設(shè)計(jì)主題。在內(nèi)容頁(yè)中設(shè)置 StyleSheetTheme屬性為引用的主題。例如主題名稱(chēng)為T(mén)heme1,則只需要在內(nèi)容頁(yè)中設(shè)置頁(yè)面的StyleShe

11、etTheme屬性為“Theme1 ”,母版頁(yè)和內(nèi)容頁(yè)的內(nèi)容都會(huì)自動(dòng)應(yīng)用此主題。四 答: TextBox textbox = (TextBox)Master.FindControl(TextBox1);if (textbox != null)textbox.Text = 123456;第 5 章習(xí)題與練習(xí)1. 填空題1)TreeView 控件, SiteMapPath 控件, Menu 控件2).sitemap3)引用另外一個(gè) sitemap 文件4)靜態(tài)菜單的菜單顯示級(jí)別數(shù)為 25)_blank6)DataSourceID2. 操作題:主要步驟:新建一個(gè)名為 Web.sitemap的XML站

12、點(diǎn)地圖文件,Web.sitemap頁(yè)面中修改并添加代碼:v?xml version=1.0 encoding=utf-8 ?vsiteMapNode url=/default.aspx title=首頁(yè)description 首頁(yè)vsiteMapNode url=/Newslist.aspx title= 新聞description=新聞vsiteMapNode url=/PENews.aspx title=體育新聞description=體育新聞/vsiteMapNode url=/internationalNews.aspx title= 國(guó)際新聞description=國(guó)際新聞/ vsi

13、teMapNode url=/userManage.aspx title=用戶(hù)管理description=用戶(hù)管理vsiteMapNode url=/userRegister.aspx title=用戶(hù)注冊(cè)description=用戶(hù)注冊(cè)/vsiteMapNode url=/userLogin.aspx title=用戶(hù)登錄description=用戶(hù)登陸/v/siteMapNodev/siteMapNodev/siteMap然后再添加一個(gè)新的 Web頁(yè)面,使用默認(rèn)名稱(chēng)“ Default.aspx ”,添加一個(gè)SiteMapDataSource 控件,ID 屬性使用默認(rèn)的 SiteMapDat

14、aSourcel。在Default.aspx ”頁(yè)面 再添加一個(gè) TreeView控件,將 DataSourcelD屬性值設(shè)為SiteMapDataSourcel,即連接了數(shù) 據(jù)源,Default.aspx”。第6章習(xí)題與練習(xí)1. 選擇題1) A 2) B 3) C 4) B 5) B 6) A 7) C 8) C 9) B 10) D 11) B 12) B 13) C 14) A 15) B2. 填空題1) continue 2)System.Enum 3)整型、實(shí)型、字符型和布爾型4) if switch 5) 56)封裝性、繼承性和多態(tài)性7)值類(lèi)型、引用類(lèi)型和指針類(lèi)型8) 803. 簡(jiǎn)

15、答題1) 一個(gè)ASP.NET的Web頁(yè)面包含以下幾個(gè)部分:指令:供編譯器處理的ASP.NET頁(yè)面和用戶(hù)控件時(shí)使用的命令。HTML標(biāo)簽:作為外觀設(shè)計(jì)的一部分,不能在代碼中被訪問(wèn)。 服務(wù)器控件:允許用戶(hù)與頁(yè)面交互的控件,在服務(wù)器上被處理,允許引發(fā)服務(wù)器端事件。 代碼聲明塊:定義當(dāng)呈現(xiàn)頁(yè)時(shí)執(zhí)行的內(nèi)聯(lián)代碼或內(nèi)聯(lián)表達(dá)式,放在%標(biāo)記中。代碼呈現(xiàn)塊:把用 C#語(yǔ)言編寫(xiě)的代碼放在script標(biāo)簽中。頁(yè)面事件:頁(yè)面觸發(fā)時(shí)的事件。 控件事件:在客戶(hù)端被用戶(hù)觸發(fā)的事件。2) Page指令的常用屬性屬性說(shuō)明AutoEventWireUp指示頁(yè)的事件是否自動(dòng)綁定。如果啟用了事件自動(dòng)綁定,則為true;否則為false。

16、默認(rèn)值為trueBuffer確定是否啟用了 HTTP響應(yīng)緩沖。如果啟用了頁(yè)緩沖,則為true;否則為false。默認(rèn)值為trueCodeFile指定指向頁(yè)引用的代碼隱藏文件的路徑Debug指示是否應(yīng)使用調(diào)試符號(hào)編譯該頁(yè)。如果應(yīng)使用調(diào)試符號(hào)編譯該頁(yè),則為true;否則為false。由于此設(shè)置影響性能,因此只應(yīng)在開(kāi)發(fā)期間將此屬性設(shè)置為trueEnableSessionState定義頁(yè)的會(huì)話(huà)狀態(tài)要求。如果啟用了會(huì)話(huà)狀態(tài),則為true;如果可以讀取會(huì)話(huà)狀態(tài)但不能進(jìn)行更改,則為Read On ly ;否則為false。默認(rèn)值為true。這些值不區(qū)分大小寫(xiě)EnableTheming指示是否在頁(yè)上使用主題。

17、如果使用主題,則為true;否則為false。默認(rèn)值為trueEnableViewState指示是否在頁(yè)請(qǐng)求之間保持視圖狀態(tài)。如果要保持視圖狀態(tài),則為true;否則為false。默認(rèn)值為trueInherits定義供頁(yè)繼承的代碼隱藏類(lèi)。它與CodeFile屬性(包含指向代碼隱藏類(lèi)的源文件的路徑)一起使用Language指定在對(duì)頁(yè)中的所有內(nèi)聯(lián)呈現(xiàn)(和 )和代碼聲明塊進(jìn)行編譯時(shí)使用的語(yǔ)言。值可以表示任何.NET Framework支持的語(yǔ)言,如 C#Theme指定在頁(yè)上使用的有效主題標(biāo)識(shí)符。如果設(shè)置Theme屬性時(shí)沒(méi)有使用StyleSheetTheme屬性,則將重寫(xiě)控件上的單獨(dú)的樣式設(shè)置,允許您創(chuàng)

18、建統(tǒng)一而一致的頁(yè)外觀Trace指示是否啟用跟蹤。如果啟用了跟蹤,則為true;否則為false。默認(rèn)值為false3) public :對(duì)任何類(lèi)和成員都公開(kāi),無(wú)限制訪問(wèn);protected :僅僅對(duì)該類(lèi)以及該類(lèi)的派生類(lèi)公開(kāi);private :僅僅對(duì)該類(lèi)公開(kāi);internal :只能值包含該類(lèi)的程序集中訪問(wèn)該類(lèi)(只是單獨(dú)的項(xiàng)目,而不是整個(gè)解決protected internal :只能在本類(lèi)、派生類(lèi)或者包含該類(lèi)的程序集中訪問(wèn)。4)值類(lèi)型直接存儲(chǔ)它的數(shù)據(jù)內(nèi)容,包括簡(jiǎn)單數(shù)據(jù)類(lèi)型、結(jié)構(gòu)類(lèi)型和枚舉類(lèi)型;引用類(lèi) 型不存儲(chǔ)實(shí)際數(shù)據(jù)內(nèi)容,而是存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用,包括類(lèi)、字符串、數(shù)組、委托和接口等。值類(lèi)型的值

19、是存放在堆棧中的,改變其值,不改變變量原有的值,而引用類(lèi)型的值是存放在棧中的,其引用的地址是存放在堆棧中的,改變其值也就改變了變量原有的值。值類(lèi)型不允許包含null值,然而可空類(lèi)型可以將 null賦值給值類(lèi)型。5)裝箱轉(zhuǎn)換是指將一個(gè)值類(lèi)型隱式或顯式地轉(zhuǎn)換成一個(gè)對(duì)象類(lèi)型,或者把這個(gè)值類(lèi)型 轉(zhuǎn)換成一個(gè)被該值類(lèi)型應(yīng)用的接口類(lèi)型(in terface-type)。把一個(gè)值類(lèi)型的值裝箱,就是創(chuàng)建一個(gè)對(duì)象實(shí)例并將這個(gè)值復(fù)制給這個(gè)對(duì)象,裝箱后的對(duì)象中的數(shù)據(jù)位于堆中,堆中的地址在棧中。被裝箱的類(lèi)型的值是作為一個(gè)拷貝賦給對(duì)象的。拆箱轉(zhuǎn)換是指將一個(gè)對(duì)象類(lèi)型顯式地轉(zhuǎn)換成一個(gè)值類(lèi)型,或是將一個(gè)接口類(lèi)型顯式地轉(zhuǎn)換成一個(gè)

20、執(zhí)行該接口的值類(lèi)型。注意裝箱操作可以隱式進(jìn)行但拆箱操作必須是顯式的。拆箱過(guò)程分成兩步:首先,檢查這個(gè)對(duì)象實(shí)例,看它是否為給定的值類(lèi)型的裝箱值。然后,把這個(gè)實(shí) 例的值復(fù)制給值類(lèi)型的變量。4. 程序閱讀題1)比較兩個(gè)整數(shù) a和b的大小,若ab則返回1,若a= =b則返回0,若a= y ? x : y; temp = temp = z ? temp : z;Console.WriteLine( 最大數(shù)為: 0, temp); 2)using System;class Teststatic void Main()char ch;Console.WriteLine( 請(qǐng)輸入一個(gè)字符 ); ch = ch

21、ar.Parse(Console.ReadLine(); if (ch = A & ch = a & ch = 0 & ch = 9) Console.WriteLine( 數(shù)字 ); else Console.WriteLine( 其他字母 );3)using System;class Teststatic void Main()int i = 2, j;bool b;Console.WriteLine(2 到 100 中的素?cái)?shù)為: ); while (i = 100)b = true;j = 2;while (j = i - 1)if (i % j = 0)b = false; break

22、;j+;if (b = true) Console.Write(0, i);i+;Console.WriteLine();4)using System;class Testpublic static void Main()int score;Console.WriteLine( 請(qǐng)輸入學(xué)生成績(jī) ); score = int.Parse(Console.ReadLine(); score = score / 10;switch (score)case 10:Console.WriteLine( 成績(jī)優(yōu)秀 ); break;case 9:Console.WriteLine( 成績(jī)優(yōu)秀 ); bre

23、ak;case 8:Console.WriteLine( 成績(jī)良好 ); break;case 7: Console.WriteLine( 成績(jī)及格 ); break;case 6: Console.WriteLine( 成績(jī)及格 ); break;default: Console.WriteLine( 成績(jī)不及格 ); break;5)using System;class Test public static void Main() const string UserName = admin; const string PassWord = 123456;string username, p

24、assword;int i=1;while(i=3)Console.WriteLine( 請(qǐng)輸入用戶(hù)名 ); username = Console.ReadLine(); Console.WriteLine( 請(qǐng)輸入密碼 ); password = Console.ReadLine();if (username = UserName & password = PassWord) break; elseConsole.WriteLine( 你輸入的用戶(hù)名或者密碼錯(cuò)誤 ,請(qǐng)重新輸入用戶(hù)名和 密碼 );i+;if (i = 3) Console.WriteLine( 正在登錄系統(tǒng) ); else C

25、onsole.WriteLine( 不能登錄系統(tǒng) );6)using System;class Testpublic static void Main()int i, j, temp; const int n = 10;int SortArray = new intn;for (i = 0; i n; i+)Console.Write(n 請(qǐng)輸入一個(gè)數(shù): ); SortArrayi = int.Parse(Console.ReadLine();Console.Write(n 等待排序的數(shù)據(jù)序列為 :); for (i = 0; i = 0; i-)for (j = 0; j SortArray

26、j + 1)temp = SortArrayj; SortArrayj = SortArrayj + 1; SortArrayj + 1 = temp;Console.Write(n 已經(jīng)排序后的數(shù)據(jù)序列為 :); for (i = 0; i n; i+)Console.Write(0 , SortArrayi); Console.WriteLine();7) using System;struct studentpublic int no; public string name;public string sex;public double score;class Teststatic vo

27、id Main(string args)student stu;stu.no = 10003; = 小小 ;stu.sex = 女 ; stu.score = 89.5;Console.WriteLine( 學(xué)生的學(xué)號(hào)是 0, 名字叫 1, 性別是 2, 程序設(shè)計(jì)的成績(jī)是 3, stu.no, , stu.sex, stu.score);8)using System;class ClassNamepublic void find(out int max, out int min, params int array)int n = array.Length, i

28、 = 1; max = array0;min = array0;while (i max)max = arrayi;elseif (arrayi min) min = arrayi;i+;class Teststatic void Main(string args)int max, min;int a = new int10 97, 65, 32, 17, 58, 43, 79, 81, 23, 10 ;ClassName s = new ClassName(); s.find(out max, out min, a);Console.WriteLine( 最大數(shù)為: + max);Conso

29、le.WriteLine( 最小數(shù)為: + min);第7章習(xí)題與練習(xí)1. 選擇題1) B 2) B 3) A 4) D 5) A2. 填空題1) None身份驗(yàn)證、Windows驗(yàn)證、Forms身份驗(yàn)證(Cookie身份驗(yàn)證)、Passport身份 驗(yàn)證2) 拒絕所有用戶(hù)訪問(wèn)3) Data Source、Database Uid、Pwd4) 基本驗(yàn)證方式、簡(jiǎn)要驗(yàn)證方式、窗口驗(yàn)證方式5) 基于ACL及資源權(quán)限的授權(quán)方式、URL授權(quán)6) Session_OnStart、Session_OnEnd3. 簡(jiǎn)答題1) 對(duì)于一個(gè) Web應(yīng)用程序來(lái)說(shuō),很重要的一點(diǎn)就是能夠辨別訪問(wèn)者的角色和對(duì)資源訪問(wèn)的限制

30、。為了做到這一點(diǎn),就要對(duì)其身份進(jìn)行驗(yàn)證。在解決誰(shuí)能進(jìn)入系統(tǒng)的問(wèn)題中,通常會(huì)維護(hù)一張?jiān)试S進(jìn)入系統(tǒng)的用戶(hù)的名單,當(dāng)用戶(hù)要求進(jìn)入的時(shí)候,判斷他是否是合法用戶(hù)。這樣一來(lái),問(wèn)題就轉(zhuǎn)化為如何有效地判別一個(gè)用戶(hù)是否是系統(tǒng)的有效用戶(hù),稱(chēng)之為“身份驗(yàn)證”過(guò)程。一個(gè)常見(jiàn)的驗(yàn)證過(guò)程是,當(dāng)進(jìn)入某些系統(tǒng)時(shí),被要求輸入用戶(hù)和口令。當(dāng)用戶(hù)進(jìn) 入以后,只允許他訪問(wèn)事先指定給他的資源,這一過(guò)程稱(chēng)為“授權(quán)”。只有通過(guò)授權(quán)檢查后,用戶(hù)才能夠?qū)ο鄳?yīng)資源進(jìn)行操作。在ASP.NET環(huán)境中,ASP.NET和IIS結(jié)合在一起為用戶(hù)提供身份驗(yàn)證和授權(quán)服務(wù)。2)2) Web.config文件是一個(gè) XML文本文件,它用來(lái)儲(chǔ)存ASP.NET We

31、b應(yīng)用程序的配置信息(如最常用的設(shè)置 ASP.NET Web應(yīng)用程序的身份驗(yàn)證方式),它可以出現(xiàn)在應(yīng)用程序 的每一個(gè)目錄中。當(dāng)通過(guò).NET新建一個(gè) Web應(yīng)用程序后,默認(rèn)情況下會(huì)在根目錄自動(dòng)創(chuàng)建 一個(gè)默認(rèn)的 Web.config文件,包括默認(rèn)的配置設(shè)置,所有的子目錄都繼承它的配置設(shè)置。主要配置參數(shù):自定義錯(cuò)誤頁(yè)、配置Session變量、全球化設(shè)置、配置 Access數(shù)據(jù)庫(kù)連接和配置SQL server數(shù)據(jù)庫(kù)連接。3) Global.asax文件是一個(gè)特殊文件,它包含應(yīng)用程序的某些服務(wù)信息,例如應(yīng)用程序是如何開(kāi)始的、應(yīng)用程序是如何結(jié)束的。但是Global.asax文件是ASP.NET應(yīng)用程序的可

32、選文件,如果應(yīng)用程序包含此文件,則應(yīng)用程序就從此文件開(kāi)始運(yùn)行,同時(shí)該文件還包含響應(yīng)ASP.NET或HTTP模塊引發(fā)的應(yīng)用程序級(jí)別事件的代碼。Global.asax文件不能包含任何形式的輸出語(yǔ)句,只能包含以下內(nèi)容:?應(yīng)用程序事件過(guò)程 Application_OnStart 和 Application_OnEnd 的腳本;?會(huì)話(huà)事件過(guò)程 Session_ On Start和Session_ OnEnd的腳本;?請(qǐng)求事件過(guò)程 Application_OnBeginRequest 和 Application_OnEndRequest 的腳本;?使用標(biāo)記聲明的應(yīng)用程序作用域?qū)ο蠡驎?huì)話(huà)作用域?qū)ο蟆?) A

33、pplicatio n 對(duì)象支持 On Start、OnEnd、On Begi nRequest 和 OnEn dRequest 四個(gè)事件。這四個(gè)事件的程序代碼放在網(wǎng)站根目錄下特定的Global.asax文件中。Application_OnStart 事件:在應(yīng)用程序運(yùn)行過(guò)程中第一次有頁(yè)面被訪問(wèn)前觸發(fā),即在一 個(gè)虛擬目錄中第一個(gè) ASP.NET 程序執(zhí)行時(shí)觸發(fā)。并且 Application_OnStart 事件在整個(gè)應(yīng)用 程序運(yùn)行期間只被觸發(fā)一次。Application_OnEnd 事件:在應(yīng)用程序退出時(shí)或者服務(wù)被終止時(shí)觸發(fā),即 ASP.NET 應(yīng)用 程序停止時(shí)被觸發(fā)。并且 Applicati

34、on_OnEnd 事件在整個(gè)應(yīng)用程序運(yùn)行期間只被觸發(fā)一次。Application_OnBeginRequest 事件:在每一個(gè) ASP.NET 應(yīng)用程序被請(qǐng)求時(shí)就發(fā)生,即客 戶(hù)每訪問(wèn)一個(gè) ASP.NET 程序時(shí),就觸發(fā)一次該事件。Application_OnEndRequest 事件:在 ASP.NET 應(yīng)用程序結(jié)束時(shí)發(fā)生, 即每一個(gè) ASP.NET 程序結(jié)束時(shí),觸發(fā)該事件。5) ASP.NET 提供了四種錯(cuò)誤處理機(jī)制,它們有一定的優(yōu)先級(jí)順序: Page_Error 事件、 ErrorPage 屬性、 Application_Error 事件和 配置項(xiàng),優(yōu)先級(jí)依次降低。第 8 章習(xí)題與練習(xí)1.

35、 選擇題BADCB BC2. 填空題(1) MapPath(2) DateTime.Now.AddDays(1);(3) Cookie (4) Request.QueryString “ id .ToString();(5)IsPostBack(6) Response.Write(“ al錄成功);windowocation.href= index.aspx ” );3. 簡(jiǎn)答題(1) 答:Page對(duì)象的In it事件和Load事件均在頁(yè)面加載過(guò)程中發(fā)生;在Page對(duì)象的生命周期中, Init 事件只在頁(yè)面初始化時(shí)觸發(fā)一次; Load 事件在初次加載及每次回發(fā) 中都會(huì)觸發(fā); 若希望事件代碼只在

36、頁(yè)面首次加載時(shí)被執(zhí)行, 可以將其放入 Init 事件, 或放入 Load 事件并利用 Page.IsPostBack 屬性判斷是否為首次加載。(2) 答:二者都可以實(shí)現(xiàn)從當(dāng)前頁(yè)面跳轉(zhuǎn)到另一頁(yè)面的功能。Execute 在新頁(yè)面中的程序執(zhí)行完畢后自動(dòng)返回到原頁(yè)面,繼續(xù)執(zhí)行后續(xù)代碼。而Transfer 方法在執(zhí)行了跳轉(zhuǎn)后不再返回原頁(yè)面,后續(xù)語(yǔ)句不會(huì)被執(zhí)行。但跳轉(zhuǎn)過(guò)程中Request、 Session 等對(duì)象中保存的信息不變,也就是說(shuō)從 A 頁(yè)面使用 Transfer 方法跳轉(zhuǎn)到 B 頁(yè)面后,可以繼 續(xù)使用 A 頁(yè)面中提交的數(shù)據(jù)。(3) 答:三個(gè)對(duì)象都是 ASP.NET 中與狀態(tài)管理相關(guān)的對(duì)象。其中,

37、 Application 對(duì)象和Session 對(duì)象都可在服務(wù)器端保存數(shù)據(jù)或?qū)ο?,使用方法和常用屬性、事件、方?也基本相同。但 Application 對(duì)象中保存的信息是為所有來(lái)訪的客戶(hù)端瀏覽器共享 的,而 Session 對(duì)象保存的數(shù)據(jù)則是僅為特定的來(lái)訪者使用的。Cookie 對(duì)象同Session 對(duì)象一樣,頁(yè)是保存特有用戶(hù)的信息的對(duì)象,并且也能夠?qū)崿F(xiàn)數(shù)據(jù)的跨頁(yè) 使用;不同的是 Cookie 對(duì)象將信息保存在客戶(hù)端,不是很安全,而且數(shù)據(jù)量有限; Session 對(duì)象將信息保存在服務(wù)器端,對(duì)數(shù)據(jù)量沒(méi)有限制。(4) 答:使用 Response對(duì)象Redirect方法URL中的查詢(xún)字符串,使用R

38、equest對(duì)象的Querystring屬性讀??;使用Request對(duì)象的Form屬性讀取表單數(shù)據(jù);使用Session 對(duì)象;使用 Cookie對(duì)象;使用 Application對(duì)象;使用 Server對(duì)象的Transfer 方法。4. 程序題(1) 在新建立的網(wǎng)站中添加三個(gè)頁(yè)面分別為:Response.aspx、Server.aspx、Welcome.aspx。其中,Respo nse.aspx.cs頁(yè)面的代碼為:protected void Page_Load( object sender, EventArgs e)this .Title =Response對(duì)象登錄頁(yè)面;protected

39、 void Button1_Click( object sender, EventArgs e)Response.Redirect( welcome.aspx);Server.aspx.cs頁(yè)面的代碼為:protected void Page_Load( object sender, EventArgs e)this .Title = Server 對(duì)象登錄頁(yè)面;protected void Button1_Click( object sender, EventArgs e)Server.Transfer(welcome.aspx);Welcome.aspx.cs頁(yè)面的代碼為:protecte

40、d void Page_Load( object sender, EventArgs e)Response.Write(歡迎來(lái)到我的網(wǎng)站。);分別在Response.aspx和Server.aspx頁(yè)面單擊按鈕,運(yùn)行的結(jié)果為:0 I 創(chuàng) htu: Io cal host文件(F) 幣舊童言tV)投歳矣(A) TfiCn 翹助H)i墳藏笑檜 http:/loc a Ih o st 3 7B 5/welcome.aspx歡迎來(lái)到我的網(wǎng)站。文件幕舊 空 M 站丹A)工負(fù)E 超氏同i,7 哎藏衰http:/1oc3lhost2705/Server.a5p3(相 http /loca I ko st:2

41、705/erveuspx歡迎來(lái)到我的網(wǎng)站。從上圖中可以看出, Response對(duì)象的Redirect方法和Server對(duì)象的Transfer方法都可以實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn),但是使用 Response對(duì)象的Redirect方法跳轉(zhuǎn)后,地址欄中的地址為新頁(yè) 面的地址,而使用Server對(duì)象的Transfer方法跳轉(zhuǎn)后,地址欄中的地址仍未原來(lái)頁(yè)面的地址。(2)protected void Page_Load( object sender,EventArgs e)Response.Write(姓名:);Resp on se.Write();Respo nse.Write();(3) protected vo

42、id Page_Load( object sender,EventArgs e)Respo nse.Write(網(wǎng)站訪問(wèn)人數(shù)計(jì)數(shù)器v/fon tv/h2);Response.Write();if (Applicationcounter = null )Applicationcounter = 1;elseApplicati on .Lock();Application.Set(counter , ( int )Applicationcounter +1);Applicati on.Un Lock();int num=(int )Applicationcounter;Response.Write

43、(歡迎您,您是本站第+ num + 位訪客! );(4) 在全局文件中的Application_Start 事件中添加代碼:Application count1 = 0;您已經(jīng)投過(guò)票了Applicatio ncou nt2Applicatio ncou nt3Vote.aspx.cs 中的代碼: protected void Butt on 1_Click(if (Request.CookiesResp on se.Write(=0;=0;object sender,EventArgs e)vote !=null )vscript lan guage=javascriptalert(););e

44、lseResponse.Cookiesvote .Value = yes;Response.Cookiesvote .Expires = DateTime.Now.AddDays(l);Respo nse.Write(vscript lan guage=javascriptalert(投票成功,感謝您的參與););Applicati on .Lock();Application.Set(count1 , ( int )Applicationcount1 + 1);Applicati on.Un Lock();protected void LinkButton 1_Click(object se

45、nder. EventArgs e)Label1.Text =科比:+ Applicationcount1 .ToString() + + 姚明:+Application count2 .ToString() + + 喬丹:+ Applicationcount3 .ToString();protected void Butt on 2_Click(object sen der,Eve ntArgs e)if (Request.Cookies vote != null )Resp on se.Write(alert(您已經(jīng)投過(guò)票了);v/script );elseResponse.Cookies

46、vote .Value = yes;Response.Cookiesvote .Expires = DateTime.Now.AddDays(1);Respo nse.Write(alert(投票成功,感謝您的參與););Applicati on .Lock();Application.Set(count2 , ( int )Applicationcount2 + 1);Applicati on.Un Lock();protected void Butt on 3_Click(object sen der,Eve ntArgs e)if (Request.Cookiesvote !=null

47、)Resp on se.Write(););alert(您已經(jīng)投過(guò)票了elseResp on se.CookiesResp on se.CookiesResp on se.Write(vote .Value = yes;vote .Expires =DateTime.Now.AddDays(1);alert(投票成功,感謝您的參與););Applicati on .Lock();Applicati on. Set(count3 , ( int )Applicationcount3 + 1);Applicati on.Un Lock();第9章習(xí)題與練習(xí)1. 選擇題1) B 2) D 3) C 4) B 5) A 6) D 7) A 8) D 9) D 10) C 11) B 12) A 13) B 14) C 15) C 16) A 17) C18) A2. 填空題1) Button、LinkButton、ImageButton2) CircleHotSpot、RectangleHotSpot、PolygonHotSpot3) DropDow nList1.ltems0.Selected4) Click 事件5) HyperLink6) I

溫馨提示

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

評(píng)論

0/150

提交評(píng)論