竞博体育app下载应用程序的配置信息(如最常用的设置ASP.NET Web,可存储Web应用程序配置参数的文件

 应用     |      2020-03-18 17:09

ASP.NET提供配置文件Web.config,它是基于XML格式的纯文本文件,可存储Web应用程序配置参数的文件。它决定了所在目录及其子目录的配置信息,并且子目录下的配置信息覆盖其父目录的配置。由于XML中的元素和属性名区分大小写,Web.config中的状态和属性值也区分大小写。

一、认识Web.config文件
Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的 Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个 Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

19:30 2013-5-16

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式
1.配置节处理程序声明
特点: 位于配置文件的顶部,包含在 <configSections> 标志中。
2.特定应用程序配置
特点: 位于 <appSetting> 中。 可以定义应用程序的全局常量设置等信息.

1.Web.config基本结构

3.配置节设置
特点: 位于 <system.Web> 节中,控制Asp.net运行时的行为.
4.配置节组
特点: 用 <sectionGroup> 标记,可以自定义分组,可以放到 <configSections> 内部或其它 <sectionGroup> 标记的内部.
(二).配置节的每一节

Web.config包含于整个站点的值。它是一个XML文件,位于根目录下,其节点主要包含3个方面的信息:
1)应用程序配置。用于设置在开发阶段或部署之后可以使用的功能,位于<appsettings>...</appsettings>之间。
2)连接字符串。用于从数据源读取数据或向数据源写入数据时连接数据源。位于<connectionString>...</connectionString>之间。
3)System.Web和System.Net设置。包含其他所有信息,位于<System.Web>...</System.Web>之间。
System.Web设置有可以分为很多子类型,包括如下几种:
①HTTP Module,将页面指向其他页面以便执行代码。
②调试例程,在编译时应该启动这些例程。
③身份验证技术。
④角色管理器,打开或者关闭。
⑤匿名识别,允许或者拒绝。
⑥错误处理设置。
⑦SiteMap文件数据,用于导航和菜单。
⑧Profile数据,用于识别用户。
⑨针对简单邮件传输协议(Simplified Mail Transfer Protocol,SMTP)的电子邮件设置。
竞博体育app下载 ,⑩命名空间的定义,表示标识对象在更大的对象内部处于什么位置(在WroxUnited中没有用到)
System.Web值包含完成一个目标的设置,一组用于发送电子邮件的值。

  1. <configuration> 节
    根元素,其它节都是在它的内部.
  2. <appSetting> 节
    此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置

2.常量的配置

用法:
I.
<appSettings>
<add key= "Conntction " value= "server=192.168.85.66;userid=sa;password=;database=Info; "/>
<appSettings>
定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.

1)<compilation>元素的配置 在<compilation>配置节中,defaultLanguage属性表示应用程序的默认语言;debug属性表示用用程序能否被调试,它的值为一个布尔类型(bool-->true/false)的值。在应用程序的开发过程中,把debug属性设置为true。而当应用程序一旦放到服务器上运行时,一般发debug属性设为false,即禁止调试该应用程序,这样可以提高站点的安全性和程序的运行性能。下面为<compilation>配置节的一个具体配置:
写法一:
<compilation defaultLanguage="C#" debug="true"/>
写法二:
<compilation defaultLanguage="C#"(该配置要求该系统默认语言为C#) debug="true"(允许系统进行调试)></compilation>

II. <appSettings>
<add key= "ErrPage " value= "Error.aspx "/>
<appSettings>
定义了一个错误重定向页面.

2)<customErrors>元素的配置 在处理数据库时候,控制用户能查看什么的内容是非常重要。如果让应用程序生成默认的错误屏幕,给用户显示字段名和堆栈信息,就给用户提供了攻击应用程序的工具,从而危害数据库的安全。保护程序的一种方式是使用定制的错误页面,可以设置ASP.NET在出现问题时将用户重定向到一个定制的错误页面,用它替代默认的错误信息;实际上可以建立多个页面,为特定的错误指定不同的页面。在<customErrors>配置节中,可以定义错误的重定向页面的链接地址与错误处理的模式。自定义错误处理的模式有On、Off和RemoteOnly三种,它们的意义如下:
①"On"表示始终显示自定义(友好的)信息。
②"Off"表示始终显示详细的ASP.NET错误信息。
③"RemoteOnly"表示只对不在本地Web服务器上运行的用户显示自定义(友好的)信息。处于安全目的,建议使用此设置,以便不向远程客户端显示应用程序的详细信息。
下面为<customErrors>配置节的一个具体配置:
<customErrors mode="RemoteOnly">//RemoteOnly属性表示远程用户看到的是友好页面missingPage.aspx,而管理员看到的则是错误的详细信息。
<error statusCode="404" redirect="missingPage.aspx"/>
</customErrors>

  1. <compilation> 节
    格式:
    <compilation
    defaultLanguage= "c# "
    debug= "true "
    />
    I.default language: 定义后台代码语言,可以选择C#和VB.net两种语言.
    IIdebug : 为true时,启动aspx调试; 为false不启动aspx调试,因而可以提高应用程序运行
    时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.
  2. <customErrors> 节
    格式:
    <customErrors
    mode= "RemoteOnly "
    defaultRedirect= "error.aspx "
    <error statusCode= "440 " redirect= "err440page.aspx "/>
    <error statusCode= "500 " redirect= "err500Page.aspx "/>
    />
    I.mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.
    II.defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的
    III.statusCode: 指明错误状态码,表明一种特定的出错状态.
    IV. redirect:错误重定向的URL.
  3. <globalization> 节
    格式:
    <globalization
    requestEncoding= "utf-8 "
    responseEncoding= "utf-8 "
    fileEncoding= "utf-8 "
    />
    I.requestEncoding: 它用来检查每一个发来请求的编码.
    II.responseEncoding: 用于检查发回的响应内容编码.
    III.fileEncoding: 用于检查aspx,asax等文件解析的默认编码.
  4. <sessionState> 节
    格式:
    <sessionState
    mode= "InProc "
    stateConnectionString= "tcpip=127.0.0.1:42424 "
    sqlConnectionString= "data source=127.0.0.1;Trusted_Connection=yes "
    cookieless= "false "
    timeout= "20 "
    />
    I.mode: 分为off,Inproc,StateServer,SqlServer几种状态
    这里有详细介绍此属性:
    II. stateConnectionString :指定Asp.net应用程序存储远程会话状态的服务器名,默认为本机
    III.sqlConnectionString: 当用会话状态数据库时,在这里设置连接字符串
    IV. Cookieless: 设置为true时,表示不使用cookie会话状态来标识客户; 否则,相反.
    V. TimeOut: 用来定义会话状态存储的时间,超过期限,将自动终止会话.
  5. <authentication> 节
    格式:
    <authentication mode= "Forms ">
    <forms name= ".ASPXUSERDEMO " loginUrl= "Login.aspx " protection= "All " timeout= "30 "/>
    </authentication>
    <authorization>
    <deny users= "? "/>
    </authorization>
    I.Windows: 使用IIS验证方式
    II.Forms: 使用基于窗体的验证方式
    III.Passport: 采用Passport cookie验证模式
    IV.None: 不采用任何验证方式
    里面内嵌Forms节点的属性涵义:
    I.Name: 指定完成身份验证的Http cookie的名称.
    II.LoginUrl: 如果未通过验证或超时后重定向的页面URL,一般为登录页面,让用户重新登录
    III.Protection: 指定 cookie数据的保护方式.
    可设置为: All None Encryption Validation四种保护方式
    a. All表示加密数据,并进行有效性验证两种方式
    b. None表示不保护Cookie.
    c. Encryption表示对Cookie内容进行加密
    d. validation表示对Cookie内容进行有效性验证
    IV. TimeOut: 指定Cookie的失效时间. 超时后要重新登录.

3)<sessionState>元素的配置 <sessionState>配置节主要配置应用程序的Session对象的处理信息。如Session对象的运行模式、有效时间、Cookies是否有效等等。
<sessionState>配置节的重用配置方法如下:
<sessionState mode="InPro"(指示在本地存储会话状态) stateConnectionString(指的是远程存储会话状态的服务器名称)="TCPIP=127.0.0.1:42424" sqlConnectionString(端口与存储会话状态的SQL Server连接字符串)="data source=127.0.0.1;Trusted_Connection=yes" cookies(Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密))="false" timeout="20"(表示如果用户20分钟为操作网页,Session自动失效)/>

在运行时对Web.config文件的修改不需要重启服务就可以生效(注: <processModel> 节例外)。当然Web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。

4)<httpRuntime>元素的配置 在ASP.NET应用程序开发中,有时候需要限制客户上传文件的大小。在<httpRuntime>配置节中可以实现次功能,系统默认上传文件的大小为4M(4096KB)左右。maxRequestLength属性指示ASP.NET支持的最大文件上传大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。制定的大小一KB为单位,默认值为4M(4096KB)。executionTimeout属性表示在被ASP.NET自动关闭前,允许执行请求的最大秒数。

web.config配置文件(默认的配置设置)以下所有的代码都应该位于
<configuration>
<system.web>

</system.web>
</configuration>
之间,出于学习的目的下面的示例都省略了这段XML标记。

5)<pages>元素的配置 <pages>配置节只要处理请求页面的一些信息,如请求时候是否验证该页面的合法性、是否使用缓存和是否使用ViewState状态等。举个很简单的例子:当我们在页面上的文本框中输入脚本(Javascript/Vbscript)的时候,系统会自动检测该页面,如果检测到该页面为危险页面时候会产生警告信息,从而导向错误页面。有时候开发人员希望自己来处理用户的输入,而不需要系统自动处理,此时可以把validateRequest属性的值设为False,此时系统就不再自动验证页面的危险性和合法性。ASP.NET应用程序的<pages>配置节的常用配置方法如下:
<pages buffer(可选的 Boolean 特性。指定 URL 资源是否使用响应缓冲。默认值为 True)="true" enableSessionState(可选的 String 特性。为配置文件范围内的资源指定会话状态要求。enableSessionState 特性可以为下列可能值之一。 默认值为 True。值 说明 False 指示会话状态已禁用。 ReadOnly 表明会话状态不可写。 True 指示会话状态已启用。)="true" autoEventWireup(可选的 Boolean 特性。指定是否自动启用页事件。 当出现自动事件连接时就是如此,这意味着系统将自动连接特定签名的方法(如 Page_Load)。 有关更多信息,请参见 ASP.NET Server Control Event Model。默认值为 True。)="true" smartNavigation(可选的 Boolean 特性。指定是否启用智能导航。 智能导航需要 Microsoft Internet Explorer 5.5 版或更高版本。 启用智能导航时,用户会体验到下列好处:①消除了导航时出现的闪烁现象。②滚动位置在不同页之间保持。③元素焦点在不同页之间保持。④浏览器的历史记录中只保留页的最近一次状态。此特性是 .NET Framework 2.0 中新引入的特性,但现已弃用,改用 maintainScrollPositionOnPostBack 特性。默认值为 False。)="true"/>

1、 <authentication> 节
作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。 < authentication> 元素必需与 <authorization> 节配合使用。

6)<authentication>元素的配置 <authentication>配置节主要处理站点、应用程序或页面的身份验证方式。在ASP.NET中,验证方式主要有一下几种:
①Windows:Windows系统验证方式。
②Forms:窗体验证方式。
③Passport:.NET Passport验证方式。
④None:不进行验证。
ASP.NET应用程序的<authentication>配置节的常用配置方法如下:
<authentication mode="Windows"/>

示例:

7)<globalization>元素的配置 <globalization>配置节主要配置站点的全球化信息,如网页显示的编码方式等,ASP.NET应用程序的<globalization>配置节的常用配置方法如下:
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8"/>

以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。

3.应用程序设置案例:
<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    WindowsMicrosoft.NetFrameworkv2.xConfig 中
-->
<configuration>
  <appSettings>
    <add key="DSN" value="server=2012-20130315AP;uid=sa;pwd=xushouwei;database=example"/>
  </appSettings>
<connectionStrings/>
<system.web>
<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
<compilation debug="true"/>
<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
<authentication mode="Windows"/>
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

<authentication mode= "Forms " >
<forms loginUrl= "logon.aspx " name= ".FormsAuthCookie "/>
</authentication>
其中元素loginUrl表示登陆网页的名称,name表示Cookie名称。

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

2、 <authorization> 节
作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与 <authentication> 节配合使用。

4.配置文件的继承关系
ASP.NET应用程序可以拥有多个配置文件,而且配置文件名称都是Web.config。这些配置文件可以出现在ASP.NET Web应用程序服务器上的多个目录中。每个Web.config文件都将配置设置应用于它自己的目录和它所有的子目录。子目录中的配置文件可以提供除从父目录继承的配置信息以外的配置信息,并可以重写或修改父目录中定义的设置。名为%systemroot%Microsoft.NETFrameworkV版本号CONFIGMachine.config定义了整个Web服务器的默认配置。machinem.config文件只能有一个,但可以有多个Web.config文件。machinem.config文件包含ASP.NET所需要的机器特定配置信息,应用程序级的Web.config文件从machinem.config文件中继承配置。Web.config文件中与machinem.config冲突的配置讲覆盖继承的配置;每个目录可以包含Web.config文件,该文件的配置可以继承或覆盖应用程序级的配置。

示例:以下示例禁止匿名用户的访问
<authorization>
<deny users= "? "/>
</authorization>
注:你可以使用user.identity.name来获取已经过验证的当前的用户名;可以使用web.Security.FormsAuthentication.RedirectFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.具体的

19:30 2013-5-16

3、 <compilation> 节
作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为False(Web.config文件中有详细说明,此处省略示例)

4、 <customErrors>
作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。

示例:当发生错误时,将网页跳转到自定义的错误页面。
<customErrors defaultRedirect= "ErrorPage.aspx " mode= "RemoteOnly ">
</customErrors>
其中元素defaultRedirect表示自定义的错误网页的名称。mode元素表示:对不在本地 Web 服务器上运行的用户显示自定义(友好的)信息。

5、 <httpRuntime> 节
作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。

示例:控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100
<httpRuntime maxRequestLength= "4096 " executionTimeout= "60 " appRequestQueueLimit= "100 "/>

ConfigurationSettings.AppSettings[ "scon "]