ASP.NET項目站點配置Web.Config文件


ASP.NET配置文件是基於XML的文本文件(每個都命名為Web.Config),可以出現在ASP.NET Web應用程序服務器上的任何目錄中。它可以包含標准的XML文檔元素(包括格式正確的標記、注釋、文本、cdata等)。該文件的編輯格式可以為ANSI、UTF-8或Unicode,系統自動檢測編碼。

Web.Cconfig文件中包括一些基本的節,下面分別對這些節的配置進行介紹。

 

1.配置<authentication>

<authentication>節主要用於配置ASP.NET 2.0身份驗證。在<authentication>節中,主要對mode屬性進行設置,該屬性共提供4個參數,分別為Windows、Forms、PassPort和None。下面分別對這4個參數進行介紹。

  (1)Windows:Internet信息服務(IIS)根據應用程序的設置執行身份驗證。在IIS中必須禁止匿名訪問。

  (2)Forms:需要工程創建者為用戶提供一個輸入憑據的自定義窗體,然后在應用程序中驗證身份。用戶的憑據標記存儲於Cookie對象中。

  (3)PassPort:身份驗證是通過Microsoft的集中身份驗證服務執行的,它為成員站點提供了不同用戶訪問此應用程序的資源。

  (4)None:不執行身份驗證。

該元素只能在計算機、站點或應用程序級聲明。<authentication>節必須與<authorization>節配合使用。

例如,下面代碼為<authentication>節基於窗體(Forms)的身份驗證配置站點,當沒有登錄的用戶訪問需要身份驗證的網頁時,網頁自動跳轉到登錄網頁,程序代碼如下:

 

1 <authentication mode="Forms" >  
2     <forms loginUrl="logon.aspx" name=".FormsAuthCookie"/> 
3 </authentication>

說明:

元素loginUrl表示登錄網頁的名稱,name表示Cookie名稱。

 

2.配置<authorization>

<authorization>節用於控制對URL資源的客戶端訪問權限(如允許匿名用戶訪問)。該元素可以在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明,必須與<authentication>節配合使用。

例如,通過配置<deny users="?"/>禁止匿名用戶的訪問,程序代碼如下:

1 <authorization> 
2     <deny users="?"/>
3 </authorization>
4 
5  

用戶可以使用user.identity.name屬性來獲取已經通過驗證的當前用戶名,也可以使用Web.Security.FormsAuthentication.RedirectFromLoginPage方法將已驗證的用戶重定向到用戶請求的頁面。

 

3.配置<compilation>

<compilation>節用於配置ASP.NET 2.0應用程序的所有編譯設置。<compilation>節主要提供兩個屬性,分別為DefaultLanguage和Debug,其說明如下。

  (1)DefaultLanguage:定義了ASP.NET 2.0后台代碼語言,可以設置C#、VB等語言。

  (2)Debug:該屬性設置為True時,將啟動aspx調試;設置為False時,可以提高應用程序的運行性能。建議在程序開發調試時,設置為Debug=“True”,交於客戶使用時,設置為Debug=“False”。

 

4.配置<customErrors>

<customErrors>節用於為ASP.NET 2.0應用程序提供有關自定義錯誤信息的信息。它不適用於XML Web Services中發生的錯誤。<customErrors>節中主要設置mode屬性,此屬性共有3個屬性值,其含義分別如下。

  (1)On:一直顯示自定義信息。

  (2)Off:一直顯示詳細的ASP.NET 2.0錯誤信息。

  (3)RemoteOnly:只對不在本地Web服務器上運行的用戶顯示自定義信息。

例如,通過配置<customErrors>節實現當發生錯誤時,將網頁跳轉到自定義的錯誤頁面。程序代碼如下:

1 <customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly">
2 </customErrors>

 說明:

上述代碼中元素defaultRedirect表示自定義的錯誤網頁的名稱。mode元素表示對不在本地Web服務器上運行的用戶顯示自定義(友好的)信息。

 

5.配置<httpRuntime>

<httpRuntime>節用於配置ASP.NET 2.0 HTTP運行庫設置。該節可以在計算機、站點、應用程序和子目錄級別聲明。

例如,通過對<httpRuntime>節的設置,指定了用戶上傳文件最大為4M,最長時間為60s,最多請求數為100,程序代碼如下:

<httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/>

 

6.配置<pages>

<pages>節用於標識特定頁的配置設置(例如,是否啟用會話狀態或視圖狀態,是否檢測用戶的輸入等)。<pages>節可以在計算機、站點、應用程序和子目錄級別聲明。

例如,通過配置<pages>節實現不檢測用戶在瀏覽器輸入的內容中,是否存在潛在的危險數據,在從客戶端回發頁時將檢查加密的視圖狀態,以及驗證視圖狀態是否已在客戶端被篡改。程序代碼如下:

1 <pages buffer="true" enableViewStateMac="true" validateRequest="false"/>

 

7.配置<sessionState>

<sessionState>節主要用於為當前應用程序配置會話狀態設置(例如,設置是否啟用會話狀態、會話狀態保存位置等)。

SessionState各參數的含義如下。

  (1)mode:該參數用於設置存儲會話狀態。狀態包括Off、Inproc、StateServer和SqlServer。Off表示禁用會話狀態,Inproc表示工作進程自身存儲會話狀態,StateServer表示將把會話信息存放在一個單獨的ASP.NET 2.0狀態服務中,SQL Server表示將把會話信息存放在SQL Server數據庫中。

  (2)StateConnectionString:該參數用於設置ASP.NET 2.0應用程序存儲遠程會話狀態的服務器名,默認名為本地。

  (3)Cookieless:當參數Cookieless的屬性設置為True時,表示不使用Cookie會話標識客戶;反之設置為False時,表示啟動Cookie會話狀態。

  (4)SqlConnectionString:該參數用於設置SQL Server數據庫連接。

  (5)Timeout:該參數用於設置會話時間,超過該期限,會自動中斷會話,默認設置為20。

例如,下面對<sessionState>節的設置,程序代碼如下:

1 <sessionState mode="InProc" cookieless="true" timeout="20"/>
2 </sessionState>

 說明:

mode="InProc"表示在本地儲存會話狀態(也可以選擇儲存在遠程服務器或SAL服務器中或不啟用會話狀態);cookieless="true"表示如果用戶瀏覽器不支持Cookie時啟用會話狀態(默認為False);timeout="20"表示會話可以處於空閑狀態的分鍾數。

 

8.配置<trace>

<trace>節用於配置ASP.NET 2.0跟蹤服務,主要用來判斷程序出錯的位置。

例如,下面代碼為Web.config中的默認配置:

1 <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />

說明:

上述代碼中,enabled="false"表示不啟用跟蹤,requestLimit="10"表示指定在服務器上存儲的跟蹤請求的數目,pageOutput="false"表示只能通過跟蹤實用工具訪問跟蹤輸出,traceMode="SortByTime"表示以處理跟蹤的順序來顯示跟蹤信息,localOnly="true" 表示跟蹤查看器(trace.axd)只用於宿主Web服務器。

 

9.自定義Web.Config文件配置

自定義Web.Config文件配置節過程分為兩步,步驟如下。

  (1)在配置文件頂部<configSections>和</configSections>標記之間,聲明配置節的名稱和處理該節中配置數據的.NET Framework類名稱。

  (2)在<configSections>區域之后,為已聲明的節做實際的配置設置。

例如,下面代碼演示了如何創建一個節存儲數據庫連接字符串:

 1 <configuration>
 2   <configSections>
 3     <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version= 1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
 4   </configSections>
 5   <appSettings>
 6     <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/>
 7   </appSettings>
 8   <system.web>
 9     ..... 
10   </system.web>
11 </configuration> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM