配置應(yīng)用程序_第1頁
配置應(yīng)用程序_第2頁
配置應(yīng)用程序_第3頁
配置應(yīng)用程序_第4頁
配置應(yīng)用程序_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

配置應(yīng)用程序第1頁,共24頁,2022年,5月20日,20點37分,星期三本章要點Web.Config文件結(jié)構(gòu)ASP.NET認證與授權(quán)機制ASP.NET緩存機制ASP.NET程序調(diào)試方法主題與外觀文件第2頁,共24頁,2022年,5月20日,20點37分,星期三Web.Config文件概述Web.Config文件用來保存一些常量或者訪問權(quán)限設(shè)置等,例如可以將數(shù)據(jù)庫連接字符串存放在其中。Web.Config的配置是層次式的,也就是說可以應(yīng)用程序的根目錄和其中的子文件夾下建立該文件,每一個Web.Config只在該文件夾和其子文件夾下起作用。每一個子文件夾可以繼承父文件夾的設(shè)置,并覆蓋相同的選項。所有的應(yīng)用程序都會繼承C:\Windows\Microsoft.NET\Framework\(版本號)\config\machine.config文件,大部分常用的設(shè)置在該文件中都已經(jīng)設(shè)置好了。Web.Config文件就是一個XML文件,常見的Web.Config配置如下:1.txt第3頁,共24頁,2022年,5月20日,20點37分,星期三在Web.Config中,所有配置都必須放在<configuration>和</configuration>之間。在<appSettings>和</appSettings>之間是自定義配置,通常用來自己設(shè)置一些常量,add標識添加一個常量,key是常量的名稱,value是常量的值。在程序中,可以通過ConfigurationManager.AppSettings["常量名稱"]來獲取設(shè)置的值。注意在使用時需要添加System.Configuration引用。在<connectionStrings>和</connectionStrings>之間用于配置對于數(shù)據(jù)庫的連接字符串,可以通過ConfigurationManager.ConnectionStrings["常量名稱"].ConnectionString來獲取數(shù)據(jù)的連接字符串內(nèi)容。第4頁,共24頁,2022年,5月20日,20點37分,星期三在<system.web>和</system.web>之間的標記是關(guān)于整個應(yīng)用程序的設(shè)置,常見的設(shè)置項如下:1)sessionState標記用來設(shè)置會話狀態(tài),其中timeout是會話時間;mode指定會話信息的存儲位置,它有3個值,InProc表示存儲在本地計算機上,stateserver表示存儲在另一臺計算機上,sqlserver表示存儲在SQLServer數(shù)據(jù)庫中;cookieless表示是否采用cookie來保存數(shù)據(jù)。2)compilation標記用來設(shè)置編譯程序時的選項。其中defaultLanguage表示編譯時使用的語言;debug表示生成的是二進制碼還是調(diào)試二進制碼,true表示調(diào)試二進制碼,如有錯誤,會在頁面上明確顯示錯誤位置。3)trace標記用來設(shè)置網(wǎng)站跟蹤的選項。其中enabled表示是否啟用跟蹤,true表示啟用;requestLimit表示存儲請求的個數(shù);pageOutput表示是否在每一個頁面上輸出跟蹤信息;traceMode表示跟蹤結(jié)果排序方式;localOnly表示是否只能在本地服務(wù)器上跟蹤。第5頁,共24頁,2022年,5月20日,20點37分,星期三4)globalization用來設(shè)置國際化選項,如編碼和文化信息等。RequestEncoding指定處理請求所用的編碼方式;responseEncoding指定發(fā)送數(shù)據(jù)采用的編碼方式。Gb2312表示中國簡體,還可以使用us-ascii、UTF-7、UTF-8等。5)customErros用來自定義錯誤處理頁面。defaultRedirect表示如果發(fā)生錯誤或者客戶訪問一個不存在的.aspx頁面時自動引導(dǎo)至該頁面;mode表示自定義錯誤信息狀態(tài),On表示開,Off表示關(guān),RemoteOnly表示只在本地計算機上收到完整的錯誤信息,而遠程客戶端則看不到錯誤提示。其中,RemoteOnly為默認值。6)pages標記用來設(shè)置關(guān)于整個頁面的選項,buffer選項表示是否開發(fā)緩存;autoEventWireup表示是否自動執(zhí)行頁面事件,theme表示頁面主題。第6頁,共24頁,2022年,5月20日,20點37分,星期三ASP.NET認證與授權(quán)在實際Web軟件項目中,往往需要輸入用戶名和密碼才能訪問系統(tǒng),例如電子郵箱、網(wǎng)上銀行等。這里涉及了認證和授權(quán)的過程。認證是指每個來用客戶首先需要驗證用戶名和密碼,通過后才可以進入應(yīng)用程序。授權(quán)指的是進入應(yīng)用程序的用戶有什么權(quán)限,能訪問哪些資源。一般的應(yīng)用程序會提供一個首頁,該頁面不需要認證就可以訪問,在該頁面輸入用戶名和密碼,通過“認證”后,就可以訪問其他被“授權(quán)”的頁面。關(guān)于安全的實現(xiàn)方法,可以自己編碼實現(xiàn),例如在首頁上增加注冊、登錄模塊,如果用戶通過驗證,就可以令Session["UserName"]等于用戶名。然后在其他頁面中增加判斷,如果Session["UserName"]為空,就可以利用Response.Redirect重定向首頁,如果不為空,就可以訪問該頁面。在ASP.NET中提供了更為簡單的解決方案,只需要配置Web.Config文件即可。ASP.NET提供了基于Windows的認證、基于表單的認證和基于微軟Passport的認證三種方式,實際使用是基于表單的認證最為靈活和常見。第7頁,共24頁,2022年,5月20日,20點37分,星期三基于表單的認證方法將用戶的用戶名和密碼保存在自己的數(shù)據(jù)庫文件、文本文件或XML文件中。它需要在應(yīng)用程序中添加一個登錄頁面,當(dāng)用戶訪問任何頁面時,都會自動引導(dǎo)到該登錄頁面,用戶必須輸入用戶名和密碼,然后將用戶輸入的用戶名和密碼與數(shù)據(jù)庫中的用戶名和密碼進行比較,如果正確,將在客戶端上創(chuàng)建一個認證cookie,這種方法不需要在服務(wù)器上進行額外設(shè)置,使用簡單。具體實現(xiàn)步驟如下:1)在應(yīng)用程序的Web.Config文件中添加如下語句,表示該應(yīng)用程序采用基于表單的驗證方式:<authenticationmode="Forms"><formsname="認證Cookie名稱"loginUrl="登錄頁面路徑"></forms></authentication>其中name屬性表示在客戶端創(chuàng)建的認證cookie名稱,可以隨意命名。loginUrl屬性表示登錄頁面路徑,可以使用相對路徑或絕對路徑。第8頁,共24頁,2022年,5月20日,20點37分,星期三2)配置授權(quán)方式,需要在Web.Config中進行如下設(shè)置:<authorization><denyusers="用戶列表"/><allowusers="用戶列表"/></authorization>在授權(quán)部分,如果是多個用戶,可以用逗號隔開。另外,有兩個特殊的通配符,*表示所有用戶,包括通過認證和未通過認證的用戶。?表示所有匿名用戶。如<denyusers="?"/>表示拒絕匿名用戶,<allowusers="*"/>表示允許所有用戶。此外還可以采用<allowroles="系統(tǒng)管理員"/>的形式,允許某類角色訪問,具體示例參見本書后面章節(jié)中網(wǎng)站項目案例中的認證授權(quán)部分。第9頁,共24頁,2022年,5月20日,20點37分,星期三3)創(chuàng)建一個登錄頁面,該登錄頁面中的核心語句為:第1句表示創(chuàng)建一個以用戶名稱為參數(shù)的認證cookie,true表示關(guān)閉瀏覽器后依然保留,這樣客戶下一次訪問時就不必再次輸入,false表示不保留。第2句表示重定向到指定頁面。4)如果需要退出登錄,則使用下面語句,該語句刪除剛才建立的認證cookie。FormsAuthentication.SignOut();在配置授權(quán)方式時,如果對于一些頁面希望能夠個性化設(shè)置,可以采用<location>和</location>標記,該標記和<system.web></system.web>位于同一層次,具體示例如下:FormsAuthentication.SetAuthCookie(用戶名稱,true|false);Response.Redirect(指定頁面);//重定向到初始頁面第10頁,共24頁,2022年,5月20日,20點37分,星期三<locationpath="images"><system.web><authorization><allowusers="*"/></authorization></system.web></location>第11頁,共24頁,2022年,5月20日,20點37分,星期三使用緩存所謂緩存,就是將常用的數(shù)據(jù)或?qū)ο蟊4嬖趦?nèi)存中,再次使用時就可以從內(nèi)存中直接調(diào)用。其優(yōu)點是會提高訪問速度,缺點是使用太多緩存的話會消耗大量內(nèi)存資源。常用的緩存有頁輸出緩存、頁片段緩存和數(shù)據(jù)緩存。第12頁,共24頁,2022年,5月20日,20點37分,星期三頁輸出緩存所謂頁輸出緩存,就是將第一次請求的頁面存儲在內(nèi)存中,以后再次請求時直接從內(nèi)存中調(diào)用。實現(xiàn)頁輸出緩存的方法是在頁面頂端添加如下緩存指令:<%@OutputCacheDuration="60"Location="Any"VaryByParam="None"%>其中Duration屬性表示緩存時間,單位為秒,超出時間將重新生成該頁面。Location表示緩存存放位置,Any表示任何位置,是系統(tǒng)默認值,Client表示緩存到客戶端,Server表示緩存到服務(wù)器端,None表示不啟用緩存。VarByParam表示分號分隔的字符串列表,用于使輸出緩存發(fā)生變化。默認情況下,這些字符串與隨GET方法屬性發(fā)送的查詢字符串值對應(yīng),或與使用POST方法發(fā)送的參數(shù)對應(yīng)。將該屬性設(shè)置為多個參數(shù)時,對于每個指定參數(shù)組合,輸出緩存都包含一個不同版本的請求文檔??赡艿闹蛋╪one、星號(*)以及任何有效的查詢字符串或POST參數(shù)名稱。默認值為none。第13頁,共24頁,2022年,5月20日,20點37分,星期三頁片段緩存所謂頁片段緩存,就是只緩存頁面中的部分內(nèi)容,其實現(xiàn)方法是將部分內(nèi)容創(chuàng)建為一個用戶控件,然后在其中添加@OutputCache緩存指令即可。數(shù)據(jù)緩存所謂數(shù)據(jù)緩存,就是將數(shù)據(jù)或DataSet對象等保存在緩存中。其實現(xiàn)方法是利用Cache類,該類語法類似與Session對象和Application對象。例如,將DataSet對象保存在緩存中可以利用如下方法:DataSetds=newDataSet();//…從數(shù)據(jù)庫中讀取記錄填充datasetCache["data"]=ds;從緩存中讀取數(shù)據(jù)可以采用如下方法:ds=(Dataset)Cache["data"];第14頁,共24頁,2022年,5月20日,20點37分,星期三調(diào)試程序在開發(fā)程序時,經(jīng)常會發(fā)生錯誤,可以采用多種調(diào)試方式來快速查找錯誤。1.使用Response.Write方法可以使用Response.Write方法在程序中輸出中間結(jié)果。尤其在數(shù)據(jù)庫程序開發(fā)時,可以用它輸出SQL語句。2.使用Debug 有時候發(fā)生錯誤時,并不告訴你錯誤發(fā)生在哪一行,就可以在頁面頂端添加 <%@Pagedebug="true"%> 或者,在Web.Config中添加 <compilationdebug="true"/> 當(dāng)發(fā)生錯誤時,就可以顯示錯誤的具體信息。第15頁,共24頁,2022年,5月20日,20點37分,星期三3.使用trace(跟蹤)采用trace,可以對應(yīng)用程序中變量的值和代碼執(zhí)行情況進行跟蹤。它分為頁面跟蹤和應(yīng)用程序跟蹤兩種方式。實現(xiàn)頁面跟蹤只要在頁面頂端添加<%@Pagetrace="true"%>執(zhí)行時,就會在頁面上顯示詳細跟蹤信息。實現(xiàn)應(yīng)用程序跟蹤只要在Web.Config中添加<%traceenabled="true"%>執(zhí)行完畢后,它會將跟蹤情況保存到系統(tǒng)文件trace.axd中。在瀏覽器中輸入http://應(yīng)用程序路徑/trace.axd就可以顯示跟蹤信息。第16頁,共24頁,2022年,5月20日,20點37分,星期三應(yīng)用主題與外觀文件 主題是屬性設(shè)置的集合,使用這些設(shè)置可以定義頁面和控件的外觀,然后在某個Web應(yīng)用程中的所有頁、整個Web應(yīng)用程序或服務(wù)器上的所有Web應(yīng)用程中一致地應(yīng)用此外觀。主題包含的元素有:外觀、層疊樣式表(CSS)、圖像和其他資源。在ASP.NET中應(yīng)用主題的步驟為:1)利用VS2005創(chuàng)建名為“Theme”的網(wǎng)站,然后在解決方案中點擊右鍵,在彈出菜單中執(zhí)行“添加ASP.NET文件夾”→“主題”命令,這樣就在網(wǎng)站根目錄下生成了“App_Themes”文件夾,并要求我們輸入主題名稱,這里輸入“MyTheme”作為主題名稱,如圖8.1所示。第17頁,共24頁,2022年,5月20日,20點37分,星期三圖8.1添加主題第18頁,共24頁,2022年,5月20日,20點37分,星期三 可以在App_Themes文件夾上單擊鼠標右鍵,從而添加更多的主題。2)在解決方案資源管理器中,選擇“MyTheme”主題,單擊鼠標右鍵,在彈出菜單中執(zhí)行“添加新項”命令,在彈出的“添加新項”對話框中,選擇“外觀文件”項,并單擊“添加”按鈕,如圖8.2所示。圖8.2添加外觀文件第19頁,共24頁,2022年,5月20日,20點37分,星期三3)在添加的“SkinFile.skin”文件中,添加以下內(nèi)容: <asp:Buttonrunat="server" BackColor="Red" ForeColor="White" Font-Name="Arial"

Font-Size="12px"></asp:Button> <asp:TextBoxrunat="server"CssClass="txtBox"></asp:TextBox>第20頁,共24頁,2022年,5月20日,20點37分,星期三4)在“MyTheme”主題下繼續(xù)添加樣式表文件,名為可采用系統(tǒng)默認名稱,在該樣式表文件中添加

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論