web.config

来源:互联网 发布:科学计算器软件下载 编辑:程序博客网 时间:2024/06/03 21:49

web.config文件是一个XML文件,它的根结点是<configuration>。

<configuration>

            <configSections>自定义配置</configSections>

           <appSettings>网站的应用配置信息(允许上传的图片格式类型)<appSettings>

           <connectionStrings>数据库连接字符串</connectionStrings>

           <system.web>网站运行时的一些配置</system.web>

</configuration>

 

一、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>


对于<appSettings>节点中的值可以按照key来进行访问,以下就是一个读取key值为“FileType”节点值的例子:

string fileType=ConfigurationManager.AppSettings["FileType "];

 

二、connectionStrings

<connectionStrings>
    <!--SQL Server数据库配置-->
    <add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/>
</connectionStrings>


在代码中我们可以这么实例化数据库连接对象:

//读取web.config节点配置
string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;
//实例化SqlConnection对象
SqlConnection connection = new SqlConnection(connectionString);

 

三、system.web

      1、<compilation>节点

            配置 ASP.NET 使用的所有编译设置。默认的debug属性为“true”,即编辑时 允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。

            实例:

                 <system.web>
                           <compilation debug="true">

                           </compilation>
                </system.web>

 

      2、<authentication> 节点
          设置asp.net 身份验证模式,有四种身份验证模式,它们的值分别如下:
                      Windows  使用Windows 身份验证,适用于域用户或者局域网用户。
                      Forms  使用表单验证,依靠网站开发人员进行身份验证。
                      Passport  使用微软提供的身份验证服务进行身份验证。
                      None  不进行任何身份验证。

           实例:

                 <authentication mode="Windows"/>

  

       3、<customErrors> 节点
           <customErrors> 节点用于定义一些自定义错误信息的信息。

           此节点有Mode 和defaultRedirect 两个属性,其中defaultRedirect 属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL ,如果没有指定该属性则显示一般性错误。

          Mode 属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:
                 On  表示在本地和远程用户都会看到自定义错误信息( 本地,远程都打开自定义网页 )。
                 Off  禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
                 RemoteOnly  表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
         注:在开发调试阶段为了便于查找错误Mode 属性建议设置为Off ,而在部署阶段应将Mode 属性设置为On 或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。

           实例:

                      <customErrors mode="RemoteOnly">
                                  <error statusCode="403" redirect="NoAccess.htm"/>
                                  <error statusCode="404" redirect="FileNotFound.htm"/>
                     </customErrors>

 

                      <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                                  <error statusCode="403" redirect="NoAccess.htm"/>
                                  <error statusCode="404" redirect="FileNotFound.htm"/>
                     </customErrors>

 

         4、<httpHandlers> 节点
             根据用户请求的URL 和HTTP 谓词将用户的请求交给相应的处理程序。可以在配置级别的任何层次配置此节点,也就是说可以针对某个特定目录下指定的特殊文件进行特殊处理。

              实例:

                     <httpHandlers>
                          <add path="IPData/*.txt" verb="*" type="System.Web.HttpForbiddenHandler"/>
                          <!--禁止访问IPData 目录下的任何txt 文件-->
                   </httpHandlers>

 

          5、<httpRuntime> 节点
              <httpRuntime> 节点用于对 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。
              例如下面的配置控制用户最大能上传的文件为40M (40*1024K ),最大超时时间为60 秒,最大并发请求为100 个。

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

 

          6、<pages> 节点

                <pages> 节点用于表示对特定页设置,主要有三个属性,分别如下:
                  buffer  是否启用了 HTTP 响应缓冲。
                 enableViewStateMac  是否应该对页的视图状态运行计算机身份验证检查(MAC) ,以放置用户篡改,默认为false ,如果设置为true 将会引起性能的降低。
                 validateRequest  是否验证用户输入中有跨站点脚本攻击和SQL 注入式漏洞攻击,默认为true ,如果出现匹配情况就会发 HttpRequestValidationException 异常。对于包含有在线文本编辑器页面一般自行验证用户输入而将此属性设为false 。

                 实例:

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

 

        7、<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 模式来存储会话状态数据,这种模式的好处是存取速度快,缺点是比较占用内存,所以不宜在这种模式下存储大型的用户会话数据。


         8、<globalization> 节点

                用于配置应用程序的全球化设置。此节点有几个比较重要的属性,分别如下:
               fileEncoding  可选属性。设置.aspx 、.asmx 和 .asax 文件的存储编码。
               requestEncoding  可选属性。设置客户端请求的编码,默认为UTF-8.
               responseEncoding  可选属性。设置服务器端响应的编码,默认为UTF-8.
               以下就是asp.net 应用程序中的默认配置:

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

 

      9、配置文件的读写操作