Web.config總結


%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG目錄下 machine.config 定義了針對當前機器的WinForm程序和asp.net應用程序的配置; web.config 包含了asp.net網站的常用配置。

1.配置文件查找優先級

(1)如果在當前頁面所在目錄下存在web.config文件,查看是否存在所要查找的結點名稱,如果存在返回結果並停止查找。

(2)如果當前頁面所在目錄下不存在web.config文件或者web.config文件中不存在該結點名,則查找它的上級目錄,直到網站的根目錄。

(3)如果網站根目錄下不存在web.config文件或者web.config文件中不存在該節點名則在%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config文件中查找。

(4)如果在%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config文件中不存在相應結點,則在%windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG/machine.config文件中查找。

(5)如果仍然沒有找到則返回null。

2.配置文件節點說明 

(1)<appSettings>節點主要用來存儲asp.net應用程序的一些配置信息,比如上傳文件的保存路徑等。

訪問方式:ConfigurationManager.AppSettings["FileType "];

(2)<connectionStrings> 節點主要用於配置數據庫連接的。

(3)<compilation>節點配置 ASP.NET 使用的所有編譯設置。默認的debug屬性為“true”,即允許調試,在這種情況下會影響網站的性能,所以在程序編譯完成交付使用之后應將其設為“false”。

(4)<authentication>節點設置asp.net身份驗證模式,有四種身份驗證模式,它們的值分別如下:

Mode 說明
Windows 使用Windows身份驗證,適用於域用戶或者局域網用戶。
Forms 使用表單驗證,依靠網站開發人員進行身份驗證。
Passport 使用微軟提供的身份驗證服務進行身份驗證。

None 不進行任何身份驗證。

(5)<customErrors>節點用於定義一些自定義錯誤信息的信息。此節點有Mode和defaultRedirect兩個屬性,其中defaultRedirect屬性是一個可選屬性,表示應用程序發生錯誤時重定向到的默認URL,如果沒有指定該屬性則顯示一般性錯誤。Mode屬性是一個必選屬性,它有三個可能值,它們所代表的意義分別如下:

Mode 說明
On 表示在本地和遠程用戶都會看到自定義錯誤信息。
Off 禁用自定義錯誤信息,本地和遠程用戶都會看到詳細的錯誤信息。
RemoteOnly 表示本地用戶將看到詳細錯誤信息,而遠程用戶將會看到自定義錯誤信息。

這里有必要說明一下本地用戶和遠程用戶的概念。當我們訪問asp.net應用程時所使用的機器和發布asp.net應用程序所使用的機器為同一台機器時成為本地用戶,反之則稱之為遠程用戶。在開發調試階段為了便於查找錯誤Mode屬性建議設置為Off,而在部署階段應將Mode屬性設置為On或者RemoteOnly,以避免這些詳細的錯誤信息暴露了程序代碼細節從而引來黑客的入侵。

(6)<error>子節點在<customErrors>節點下還包含有<error>子節點,這個節點主要是根據服務器的HTTP錯誤狀態代碼而重定向到我們自定義的錯誤頁面,注意要使<error>子節點下的配置生效,必須將<customErrors>節點節點的Mode屬性設置為“On”。

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

<error statusCode="403" redirect="403.htm" />

<error statusCode="404" redirect="404.htm" />

</customErrors>

在上面的配置中如果用戶訪問的頁面不存在就會跳轉到404.htm頁面,如果用戶沒有權限訪問請求的頁面則會跳轉到403.htm頁面,403.htm和404.htm頁面都是我們自己添加的頁面,我們可以在頁面中給出友好的錯誤提示。

(7)<httpHandlers>節點用於根據用戶請求的URL和HTTP謂詞將用戶的請求交給相應的處理程序。可以在配置級別的任何層次配置此節點,也就是說可以針對某個特定目錄下指定的特殊文件進行特殊處理。

<httpHandlers>
  <add path="*.rules" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
  <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="true"/>
  <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="true"/>
  <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="true"/>
  <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
  <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="true"/>
  <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
  <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
  <add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
  <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
  <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
  <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="true"/>
  <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
  <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="true"/>
  <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="true"/>

</httpHandlers> 

從上面的配置中可以看出,針對*.mdf、*.ldf文件的Get或者Post請求都會交給System.Web.HttpForbiddenHandler來處理,處理的結果就是用戶不能查看或者下載相關的文件。如果我們某個文件夾下的文件或者某個類型的文件不允許用戶下載,可以在</httpHandlers>節點中增加相應的子節點。

下面我們以一個例子來說明<httpHandlers>節點的用法,在我們的asp.net應用程序中建立一個IPData目錄,在IPData目錄中創建一個IPData.txt文件,然后在Web.config中添加以下配置:

<httpHandlers>  

   <add path="IPData/*.txt" verb="*" type="System.Web.HttpForbiddenHandler"/>

</httpHandlers>

上面的代碼的作用是禁止訪問IPData目錄下的任何txt文件。

(8)<httpRuntime>節點用於對 ASP.NET HTTP 運行庫設置。該節可以在計算機、站點、應用程序和子目錄級別聲明。
例如下面的配置控制用戶最大能上傳的文件為40M(40*1024K),最大超時時間為60秒,最大並發請求為100個。

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

(9)<pages>節點用於表示對特定頁設置,主要有三個屬性,分別如下:
屬性名                           說明
buffer                            是否啟用了 HTTP 響應緩沖。
enableViewStateMac    是否應該對頁的視圖狀態運行計算機身份驗證檢查 (MAC),以放置用戶篡改,默認為false,如果設置為true將會引起性能的降低。
validateRequest           是否驗證用戶輸入中有跨站點腳本攻擊和SQL注入式漏洞攻擊,默認為true,如果出現匹配情況就會發 HttpRequestValidationException 異常。對於包含有在線文本編輯器頁面一般自行驗證用戶輸入而將此屬性設為false。

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

(10)<sessionState>節點用於配置當前asp.net應用程序的會話狀態配置。以下就是一個常見配置:

<sessionState cookieless="false" mode="InProc" timeout="30" />

上面的節點配置是設置在asp.net應用程序中啟用Cookie,並且指定會話狀態模式為在進程中保存會話狀態,同時還指定了會話超時為30分鍾。

<sessionState>節點的Mode屬性可以是以下幾種值之一:

屬性值                 說明

Custom               使用自定義數據來存儲會話狀態數據。
InProc 默認值。  由asp.net輔助進程來存儲會話狀態數據。
Off                      禁用會話狀態。
SQLServer         使用進程外SQL Server數據庫保存會話狀態數據。
StateServer        使用進程外 ASP.NET 狀態服務存儲狀態信息。

一般默認情況下使用InProc模式來存儲會話狀態數據,這種模式的好處是存取速度快,缺點是比較占用內存,所以不宜在這種模式下存儲大型的用戶會話數據。

(11)<globalization>節點用於配置應用程序的全球化設置。此節點有幾個比較重要的屬性,分別如下:
屬性名                                          說明
fileEncoding 可選屬性。               設置.aspx、.asmx 和 .asax 文件的存儲編碼。
requestEncoding 可選屬性。        設置客戶端請求的編碼,默認為UTF-8.
responseEncoding 可選屬性。     設置服務器端響應的編碼,默認為UTF-8.
以下就是asp.net應用程序中的默認配置:

<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>

3.配置文件讀寫操作

private  Configuration config;
///   <summary>  
///  設置應用程序配置節點,如果已經存在此節點,則會修改該節點的值,否則添加此節點
///   </summary>  
///   <param name="key"> 節點名稱 </param>  
///   <param name="value"> 節點值 </param>  
public  void  SetAppSetting( string  key,  string  value)
{
    AppSettingsSection appSetting = (AppSettingsSection)config.GetSection( " appSettings " );
     if  (appSetting.Settings[key] ==  null ) // 如果不存在此節點,則添加 
    {
        appSetting.Settings.Add(key, value);
    }
     else // 如果存在此節點,則修改 
    {
        appSetting.Settings[key].Value = value;
    }
}
///   <summary>  
///  設置數據庫連接字符串節點,如果不存在此節點,則會添加此節點及對應的值,存在則修改 
///   </summary>  
///   <param name="key"> 節點名稱 </param>  
///   <param name="value"> 節點值 </param>  
public  void  SetConnectionString( string  key,  string  connectionString)
{
    ConnectionStringsSection connectionSetting = (ConnectionStringsSection)config.GetSection( " connectionStrings " );
     if  (connectionSetting.ConnectionStrings[key] ==  null ) // 如果不存在此節點,則添加 
    {
        ConnectionStringSettings connectionStringSettings =  new  ConnectionStringSettings(key, connectionString);
        connectionSetting.ConnectionStrings.Add(connectionStringSettings);
    }
     else // 如果存在此節點,則修改 
    {
        connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;
    }
}
///   <summary>  
///  保存所作的修改 
///   </summary>  
public  void  Save()
{
    config.Save();
    config =  null ;
}
public  void  Dispose()
{
     if  (config !=  null )
    {
        config.Save();
    }

} 

 

<?xml version="1.0"?>
<configuration>
  <!--指定配置節和命名空間聲明。clear:移除對繼承的節和節組的所有引用,只允許由當前 section 和 sectionGroup 元素添加的節和節組。remove:移除對繼承的節和節組的引用。section:定義配置節處理程序與配置元素之間的關聯。sectionGroup:定義配置節處理程序與配置節之間的關聯。-->
  <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      </sectionGroup>
    </sectionGroup>
    <section name="rewriter" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
  </configSections>
  <!--appSettings是應用程序設置,可以定義應用程序的全局常量設置等信息。-->
  <appSettings>
     <!--允許上傳的圖片格式類型-->

    < add  key ="ImageType"  value =".jpg;.bmp;.gif;.png;.jpeg" />
<!-- 允許上傳的文件類型 -->
    < add  key ="FileType"  value =".jpg;.bmp;.gif;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc" />
   </ appSettings >
   <!-- 連接字符串設置 -->
   < connectionStrings >
     < add  name ="sqlConnectionString"  connectionString ="" />
   </ connectionStrings >
   <!-- 指定應用子配置設置的資源,並鎖定配置設置,以防止它們被子配置文件重寫。path指定應用包含的配置設置的資源。allowOverride是否允許配置文件的重寫,提高配置文件的安全性。 -->
   < location  path ="Default.aspx"  allowOverride ="false" >
     <!-- 控制asp.net運行時的行為 -->
     < system.web >
       <!-- identity控制web應用程序的身份驗證標識. -->
       < identity  impersonate ="false"   />
       <!-- 標識特定於頁的配置設置(如是否啟用會話狀態、視圖狀態,是否檢測用戶的輸入等)。<pages>可以在計算機、站點、應用程序和子目錄級別聲明。
      masterPageFile:默認主頁為Index。
      theme:主題是Default。
      buffer:指定 URL 資源是否使用響應緩沖。默認值為 True。
      enableViewStateMac:指定從客戶端回發頁時,ASP.NET 是否應該對頁的視圖狀態運行消息身份驗證代碼 (MAC)。如果為 True,將檢查加密的視圖狀態,以驗證視圖狀態是否已在客戶端被篡改。默認值為 True。
      validateRequest:指示 ASP.NET 在從瀏覽器輸入的所有內容中檢查是否存在潛在的危險數據。如果是 True,則通過將所有輸入數據與一個潛在危險值列表進行比較來執行請求驗證。如果發生匹配,ASP.NET 將引發 HttpRequestValidationException 異常。默認值為 True。
      enableViewState:指定視圖狀態是否啟用並在多個頁請求之間保持。默認值為 True。 -->
       < pages  masterPageFile ="Index"  theme ="Default"  buffer ="true"  enableViewStateMac ="true"  validateRequest ="false"  enableViewState ="false" >
         <!-- controls 元素定義標記前綴所在的 register 指令和命名空間的集合 -->
         < controls ></ controls >
         <!-- 將在程序集預編譯期間使用的導入指令的集合 -->
         < namespaces ></ namespaces >
       </ pages >
       <!-- 默認錯誤頁設置。
      mode:具有On,Off,RemoteOnly 3種狀態。On表示始終顯示自定義的信息; Off表示始終顯示詳細的asp.net錯誤信息; RemoteOnly表示只對不在本地Web服務器上運行的用戶顯示自定義信息。
      defaultRedirect:用於出現錯誤時重定向的URL地址。 -->
       < customErrors  defaultRedirect ="Err.html"  mode ="RemoteOnly" >
         <!-- 特殊代碼編號的錯誤從定向文件 -->
         < error  statusCode ="403"  redirect ="NoAccess.htm"   />
         < error  statusCode ="404"  redirect ="FileNotFound.htm"   />
       </ customErrors >
       <!-- 配置調試和跟蹤。
      enabled:是否為應用程序啟用跟蹤。默認值為 false。
      localOnly:指定跟蹤查看器 (Trace.axd) 是否只用於主機 Web 服務器。如果是 false,則跟蹤查看器可用於任何計算機。默認情況下,Trace.axd 查看器被添加到 httpHandlers 元素。默認值為 true。
      pageOutput:指定在每一頁的結尾是否呈現跟蹤輸出。如果是 false,則只能通過跟蹤實用工具訪問跟蹤輸出。默認值為 false。
      requestLimit:指定在服務器上存儲的跟蹤請求的數目。如果達到限制,並且 mostRecent 特性為 false,將自動禁用跟蹤。最大請求限制為 10,000。如果指定了大於 10,000 的值,ASP.NET 會在不給出任何提示的情況下將它向下舍入到 10,000。默認值為 10。
      traceMode:指定顯示跟蹤信息的順序。traceMode 特性可以為下列可能值之一。
            值                 說明    
            SortByCategory    指定根據用戶定義的類別按字母順序顯示跟蹤信息。                         SortByTime        指定以處理跟蹤信息的順序來顯示跟蹤信息。 
      默認值為 SortByTime。 -->
       < trace  enabled ="true"  localOnly ="false"  pageOutput ="true"  requestLimit ="15"  traceMode ="SortByCategory" />
       <!--  設置 compilation debug="true" 將調試符號插入已編譯的頁面中。但由於這會影響性能,因此只在開發過程中將此值設置為 true。設置默認的開發語言C#。batch是否支持批處理 -->
       < compilation  debug ="true"  defaultLanguage ="c#"  batch ="false" >
         < assemblies >
           <!-- 加的程序集引用,每添加一個程序集,就表示你的應用程序已經依賴了一個程序集,你就可以在你的應用程序中使用了 -->
           < add  assembly ="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
           < add  assembly ="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
           < add  assembly ="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
           < add  assembly ="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
           < add  assembly ="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
           < add  assembly ="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
           < add  assembly ="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
           < add  assembly ="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
           < add  assembly ="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
           < add  assembly ="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
           < add  assembly ="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
         </ assemblies >
         <!-- 定義用於編譯自定義資源文件的生成提供程序的集合。 -->
         < buildProviders >
           < add  extension =".aspx"  type ="System.Web.Compilation.PageBuildProvider" />
           < add  extension =".ascx"  type ="System.Web.Compilation.UserControlBuildProvider" />
           < add  extension =".master"  type ="System.Web.Compilation.MasterPageBuildProvider" />
           < add  extension =".asmx"  type ="System.Web.Compilation.WebServiceBuildProvider" />
           < add  extension =".ashx"  type ="System.Web.Compilation.WebHandlerBuildProvider" />
           < add  extension =".soap"  type ="System.Web.Compilation.WebServiceBuildProvider" />
           < add  extension =".resx"  type ="System.Web.Compilation.ResXBuildProvider" />
           < add  extension =".resources"  type ="System.Web.Compilation.ResourcesBuildProvider" />
           < add  extension =".wsdl"  type ="System.Web.Compilation.WsdlBuildProvider" />
           < add  extension =".xsd"  type ="System.Web.Compilation.XsdBuildProvider" />
           < add  extension =".rdlc"  type ="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
         </ buildProviders >
       </ compilation >
       <!-- 通過 <authentication> 節可以配置 ASP.NET 使用的 安全身份驗證模式,以標識傳入的用戶。Windows: 使用IIS驗證方式。Forms: 使用基於窗體的驗證方式。Passport: 采用Passport cookie驗證模式。None: 不采用任何驗證方式。 -->
       < authentication  mode ="Forms" >
         <!-- Name: 指定完成身份驗證的Http cookie的名稱。
        LoginUrl: 如果未通過驗證或超時后重定向的頁面URL,一般為登錄頁面,讓用戶重新登錄。
        Protection: 指定 cookie數據的保護方式。可設置為:All表示加密數據,並進行有效性驗證兩種方式,None表示不保護Cookie,Encryption表示對Cookie內容進行加密,validation表示對Cookie內容進行有效性驗證。
        TimeOut: 指定Cookie的失效時間。超時后要重新登錄。 -->
         < forms  name =".ASPXUSERDEMO"  loginUrl ="Login.aspx"  protection ="All"  timeout ="30" />
       </ authentication >
       <!-- 控制對 URL 資源的客戶端訪問(如允許匿名用戶訪問)。此元素可以在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明。必需與<authentication> 節配合使用。此處的意思是對匿名用戶不進行身份驗證。拒絕用戶weipeng -->
       < authorization >
         < allow  users ="*" />
         < deny  users ="weipeng" />
         < allow  users ="aa"  roles ="aa"   />
       </ authorization >
       <!-- 站點全球化設置,requestEncoding: 它用來檢查每一個發來請求的編碼。responseEncoding: 用於檢查發回的響應內容編碼.fileEncoding:用於檢查aspx,asax等文件解析的默認編碼,默認的編碼是utf-8 -->
       < globalization  requestEncoding ="gb2312"  responseEncoding ="gb2312"  fileEncoding ="gb2312"   />
       <!-- 會話狀態設置。
      mode: 分為off,Inproc,StateServer,SqlServer幾種狀態。mode ="InProc" 存儲在進程中,特點:具有最佳的性能,速度最快,但不能跨多台服務器存儲共享。mode = "StateServer" 存儲在狀態服務器中特點:當需要跨服務器維護用戶會話信息時,使用此方法。但是信息存儲在狀態服務器上,一旦狀態服務器出現故障,信息將丟失。mode="SqlServer" 存儲在sql server中特點:工作負載會變大,但信息不會丟失。
      stateConnectionString:指定asp.net應用程序存儲遠程會話狀態的服務器名,默認為本機。
      sqlConnectionString:當用會話狀態數據庫時,在這里設置連接字符串。
      Cookieless:設置為flase時,表示使用cookie會話狀態來標識客戶。
      timeout:表示會話超時時間。 -->
       < sessionState  mode ="InProc"  stateConnectionString ="tcpip=127.0.0.1:42424"  sqlConnectionString ="data source=127.0.0.1;Trusted_Connection=yes"  cookieless ="false"  timeout ="20" ></ sessionState >
       <!-- 為 ASP.NET 應用程序配置頁的視圖狀態設置。設置要存儲在頁歷史記錄中的項數。 -->
       < sessionPageState  historySize ="9" />
       <!-- 配置asp.net http運行庫的設置。可以在計算機,站點,應用程序和子目錄級別聲明允許最多的請求個數100,最長允許執行請求時間為80秒,控制用戶上傳文件的大小,默認是4M。useFullyQualifiedRedirectUrl客戶端重定向不需要被自動轉換為完全限定格式。 -->
       < httpRuntime  appRequestQueueLimit ="100"  executionTimeout ="80"  maxRequestLength ="40960"  useFullyQualifiedRedirectUrl ="false" />
       <!-- httpModules在一個應用程序內配置 HTTP 模塊。 -->
       < httpModules >
         < add  name ="OutputCache"  type ="System.Web.Caching.OutputCacheModule"   />
         < add  name ="Session"  type ="System.Web.SessionState.SessionStateModule"   />
         < add  name ="WindowsAuthentication"  type ="System.Web.Security.WindowsAuthenticationModule"   />
         < add  name ="FormsAuthentication"  type ="System.Web.Security.FormsAuthenticationModule"   />
         < add  name ="PassportAuthentication"  type ="System.Web.Security.PassportAuthenticationModule"   />
         < add  name ="RoleManager"  type ="System.Web.Security.RoleManagerModule"   />
         < add  name ="UrlAuthorization"  type ="System.Web.Security.UrlAuthorizationModule"   />
         < add  name ="FileAuthorization"  type ="System.Web.Security.FileAuthorizationModule"   />
         < add  name ="AnonymousIdentification"  type ="System.Web.Security.AnonymousIdentificationModule"   />
         <!-- 自定義的URL重寫,type基本上就是dll名 -->
         < add  name ="UrlRewriter"  type ="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"   />
         < add  name ="Profile"  type ="System.Web.Profile.ProfileModule"   />
       </ httpModules >
       <!-- httpHandlers用於根據用戶請求的URL和HTTP謂詞將用戶的請求交給相應的處理程序。可以在配置級別的任何層次配置此節點,也就是說可以針對某個特定目錄下指定的特殊文件進行特殊處理。
      add:指定映射到處理程序的謂詞/路徑。
      clear:移除當前已配置或已繼承的所有處理程序映射。
      remove:移除映射到處理程序的謂詞/路徑。remove 指令必須與前一個 add 指令的謂詞/路徑組合完全匹配。該指令不支持通配符。 -->
       < httpHandlers >
         < remove  verb ="*"  path ="*.asmx" />
         < add  verb ="*"  path ="*.asmx"  validate ="false"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
         < add  verb ="*"  path ="*_AppService.axd"  validate ="false"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
         < add  verb ="GET,HEAD"  path ="ScriptResource.axd"  type ="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  validate ="false" />
         < add  verb ="POST,GET"  path ="ajaxpro/*.ashx"  type ="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
       </ httpHandlers >
       <!-- 為 Web 應用程序使用的 Cookie 配置屬性。
      domain:設置 Cookie 域名。
      httpOnlyCookies:在 Internet Explorer 6 SP1 中啟用 HttpOnlyCookies Cookie 的輸出。默認值為 false。
      requireSSL:獲取一個指示是否需要安全套接字層 (SSL) 通信的值. -->
       < httpCookies  httpOnlyCookies ="false"  requireSSL ="false" />
       <!-- 控制 ASP.NET Web 服務及其客戶端的行為。
      protocols:指定傳輸協議,ASP.NET 可使用這些傳輸協議來解密 HTTP -->
       < webServices >
         < protocols >
           < add />
         </ protocols >
       </ webServices >
       <!-- 為 Web 應用程序配置緩存設置。
      cache:定義全局應用程序緩存設置。
      outputCache:指定應用程序范圍的輸出緩存設置。
      outputCacheSettings:指定可以應用於應用程序中頁的輸出緩存設置。
      sqlCacheDependency:為 ASP.NET 應用程序配置 SQL 緩存依賴項。 -->
       < caching >
         < cache  disableMemoryCollection  = "false"  disableExpiration  = "false"  privateBytesLimit  = "0"  percentagePhysicalMemoryUsedLimit  = "90"  privateBytesPollTime  = "00:02:00" />
         <!-- 設計需要以這種方式緩存的頁時,您需要向該頁添加以下指令:<%@ OutputCache CacheProfile="ServerOnly" %> -->
         < outputCacheSettings >
           < outputCacheProfiles >
             < add  name ="ServerOnly"  duration ="60"  varyByCustom ="browser"  location ="Server"   />
           </ outputCacheProfiles >
         </ outputCacheSettings >
       </ caching >
     </ system.web >
   </ location >
   <!-- 網絡設置。authenticationModules:指定用於對 Internet 請求進行身份驗證的模塊。connectionManagement:指定與 Internet 宿主的連接的最大數目。defaultProxy:配置超文本傳輸協議 (HTTP) 代理服務器。mailSettings:配置簡單郵件傳輸協議 (SMTP) 郵件發送選項。requestCaching:控制網絡請求的緩存機制。settings:配置 System.Net 的基本網絡選項。 -->
   < system.net >
     <!-- 配置SMTP電子郵件設置 -->
     < mailSettings >
       < smtp  from ="sy" >
         < network  host ="Gao"  password =""  userName =""   />
       </ smtp >
     </ mailSettings >
     <!-- 禁用所有緩存 -->
     < requestCaching  disableAllCaching ="true" ></ requestCaching >
     <!-- 指定代理地址,並對本地訪問和 contoso.com 跳過代理。 -->
     < defaultProxy >
       < proxy  usesystemdefault ="True"  proxyaddress ="http://192.168.1.10:3128"  bypassonlocal ="True" />
       < bypasslist >
         < add  address =""   />
       </ bypasslist >
     </ defaultProxy >
   </ system.net >
   <!-- 該節替換在 httpHandlers 和 httpModules 節中添加的與 AJAX 相關的 HTTP 處理程序和模塊。該節使 IIS 7.0 在集成模式下運行時可使用這些處理程序和模塊。在iis7.0 下運行 ASP.NET AJAX 需要 system.webServer節。對早期版本的 IIS 來說則不需要此節。  -->
   < system.webServer >
     < validation  validateIntegratedModeConfiguration ="false" />
     < modules >
       < add  name ="ScriptModule"  preCondition ="integratedMode"  type ="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
     </ modules >
     < handlers >
       < remove  name ="WebServiceHandlerFactory-Integrated" />
       < add  name ="ScriptHandlerFactory"  verb ="*"  path ="*.asmx"  preCondition ="integratedMode"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
       < add  name ="ScriptHandlerFactoryAppServices"  verb ="*"  path ="*_AppService.axd"  preCondition ="integratedMode"  type ="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
       < add  name ="ScriptResource"  preCondition ="integratedMode"  verb ="GET,HEAD"  path ="ScriptResource.axd"  type ="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
     </ handlers >
   </ system.webServer >
   <!-- ASP.NET AJAX 中配置 ASP.NET 服務 -->
   < system.web.extensions >
     <!-- 配置 JSON 序列化 -->
     < scripting >
       < webServices >
         < jsonSerialization  maxJsonLength ="5000" />
       </ webServices >
     </ scripting >
   </ system.web.extensions >
   <!-- 對WCF的相關配置 -->
   < system.serviceModel >
     < services >
       < service  name ="WCFStudent.WCFStudentText"  behaviorConfiguration ="ServiceBehavior" >
         <!--  Service Endpoints  -->
         < endpoint  address =""  binding ="wsHttpBinding"  contract ="WCFStudent.IStuServiceContract" >
           <!--  部署時,應刪除或替換下列標識元素,以反映在其下運行部署服務的標識。刪除之后,WCF 將自動推導相應標識。 -->
           < identity >
             < dns  value ="localhost" />
           </ identity >
         </ endpoint >
         < endpoint  address ="mex"  binding ="mexHttpBinding"  contract ="IMetadataExchange" />
       </ service >
     </ services >
     < behaviors >
       < serviceBehaviors >
         < behavior  name ="ServiceBehavior" >
           <!--  為避免泄漏元數據信息,請在部署前將以下值設置為 false 並刪除上面的元數據終結點  -->
           < serviceMetadata  httpGetEnabled ="true" />
           <!--  要接收故障異常詳細信息以進行調試,請將以下值設置為 true。在部署前設置為 false 以避免泄漏異常信息 -->
           < serviceDebug  includeExceptionDetailInFaults ="false" />
         </ behavior >
       </ serviceBehaviors >
     </ behaviors >
   </ system.serviceModel >
   <!-- URL重定向 -->
   < rewriter >
     < rewrite  url ="~/user/u(.+).aspx"  to ="~/user/index.aspx?r=$1"   />
     < rewrite  url ="~/ask/q(.+).aspx"  to ="~/home/ask/content.aspx?id=$1"   />
     < rewrite  url ="~/blog/b(.+).aspx"  to ="~/home/blog/article.aspx?r=$1"   />
     < rewrite  url ="~/news/n(.+).aspx"  to ="~/home/news/content.aspx?nid=$1"   />
     < rewrite  url ="~/default.aspx"  to ="~/home/ram/net.aspx"   />
   </ rewriter >
</ configuration >

 


轉載:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html


免責聲明!

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



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