重溫ASP.NET的配置信息(簡單、常用)

來源:http://www.cnblogs.com/kevin-moon/archive/2009/01/22/1379789.html

 

     ASP.NET中的配置文件由web.config和machine.config構成。
     每當我們安裝net framework的時候,machine.config文件都會被創建到"C:/WINDOWS/Microsoft.NET/Framework/[Version]/CONFIG"文件夾下,並且每個Web應用程序都會繼承這些配置信息,同時我們也可以通過Web應用程序中的web.config文件來覆蓋它。
     在Web應用程序中,我們依然可以在每個子文件夾中去建立web.config,並用它來覆蓋上層的配置。如下圖:

Web.config中常用的配置信息


<authentication>
     被用於,當客戶端向服務器發送請求的時候,服務器需要去驗證客戶端的身份,我們可以設定"None"、"Forms"、"Windows"、"Passport"這四種驗證方式。
     1、如果你不需要驗證身份,可以設定:<anthentication mode="none" >
     2、一般情況下,我們使用"windows"驗證,<anthentication mode="Windows" >,這種驗證方式是通過IIS來處理的,IIS給我們下面幾種驗證模式去選擇,

     3、表單驗證這種驗證方式是Web應用程序來處理。
          <anthentication mode="Forms" >
               <Forms name = "form1"  LoginUrl = "login.aspx">
          </anthentication>
     4、Passport驗證,客戶端通過Microsoft的Passport數據庫來驗證的,優點是你可以擁有一個已存在的驗證信息,而不需要去做註冊用戶名這些動作,不過它是收費的...!如果你要用這種驗證方式,你需要在你的電腦上安裝Passport Software Development Kit。
          <anthentication mode="Passport" >
               <Passport redirectUrl = "interanlUrl">
          </anthentication>

<authorization>
      控制客戶端對服務器URL的訪問
          <anthorization>
               <allow users = "" roles="" verbs = "">
               <deny users = "" roles="" verbs = "">

          </anthorization>       
      users:用戶名列表,roles:角色列表,verbs:請求的方式(GET,POST)

<compilation>
     配置 ASP.NET 用於編譯應用程序的所有編譯設置。其中最常用的就是debug(是否應編譯調試二進制文件)和defaultLanguage(在動態編譯文件中使用的默認編程語言),

<customerErrors>
     設置Web應用程序的異常信息,當應用程序出現異常的時候,可以通過設定這個來給用戶一個友好的異常信息。
          <customerErrors defaultRedirect="..." mode = "on">
               <error statusCode="403" redirectUrl="..." />
               <error statusCode="404" redirectUrl="..." />

          </customerErrors>       
     "on":指定啓用自定義錯誤。如果未指定 defaultRedirect,用戶將看到一般性錯誤。 
     "off":指定禁用自定義錯誤。這允許顯示標準的詳細錯誤。
     "remoteOnly":指定僅向遠程客戶端顯示自定義錯誤並且向本地主機顯示 ASP.NET 錯誤。這是默認值。

<globalization>
     用於設置應用程序的編碼格式和語言環境
     <globalization requestEncoding="utf-8" responseEncoding="utf-8" />     

<httpRuntime>
     用於設定應用程序運行時的一些信息
     <httpRuntime appRequestQueueLimit="50" executionTimeout="300" /> 
     "appRequestQueueLimit":服務器中請求隊列的最大限制數量,如果超過這個最大值,服務器會返回503錯誤(服務器太忙)
     "executionTimeout":處理一個請求的超時限制。

<trace>
     跟蹤應用程序的執行,我們有兩種跟蹤級別:頁面級別和應用程序級別,應用程序級別對所有的頁面都會進行跟蹤,如果pageOutput="true",那麼跟蹤信息將顯示在每個頁面的底部,我們也可以到應用程序的根目錄下,找trace.axd去看跟蹤日誌。
   <trace enabled="false" requestLimit="10" pageOutput="true" traceMode="sortBytime" localOnly ="true" />
   如果我們只希望在頁面級別上面的話,只需要在每頁上設置trace="true"就可以了。

<identity>

     配置 Web 應用程序的標識
     <identity impersonate="false" username="..." password="..." />
     "impersonate":是否對每個請求使用客戶端模擬。

<sessionState>
     設置服務器如何去保存session,session有五種方式:
     1、Inpro:默認的方式,在應用程序的進程上保存session。
     2、StateServer:將session保存在aspnet_state進程上面,它獨立與應用程序進程,可以在同一服務器也可以用專門一臺服務器。
     3、SQLServer:將session保存在SqlServer數據庫中,不過在使用它之前需要安裝InstallSQLState.sql腳本,

     4、自定義的保存方式,通過重寫SessionStateStoreProviderBase基類來實現自己的保存方式,

     5、不啓用Session

<appSetting>
     設置一些需要在應用程序中用到鍵/值信息
     <appSetting>
          <add key="..." value="..." />
     </appSetting>

加密配置文件
      當你的配置文件中有一些敏感信息的時候,你也許希望對其中的內容進行加密。
     ASP.NET中有兩種支持的加密方式:RSA和DPAPI。同時我們對如何進行加密,也有兩種方式。
     1、程序方式
        Configuration myConfig = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
        ConfigurationSection mySettings 
= myConfig.GetSection("mySection");
        
if (mySettings.SectionInformation.IsProtected)
        {
            mySettings.SectionInformation.UnprotectSection();
        }
        
else
        {
            mySettings.SectionInformation.ProtectSection(
"DataProtectionConfigurationProvider"); ;
        }
        myConfig.Save();
     2、命令行的方式
     我們可以用命令行工具aspnet_regiis.exe去對config文件進行加密,當你使用這種方式進行加密的時候,你需要去設置一些參數:
     "-pe":config文件中的配置節
     "-app":應用程序的相對路徑
     "-prov":加密的提供程序
 例如,我們對http://localhost/MyApp下的配置文件進行加密


     放假咯!過年咯!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章