Webconfig关键技术.docx

上传人:b****1 文档编号:11126358 上传时间:2023-05-29 格式:DOCX 页数:18 大小:25.33KB
下载 相关 举报
Webconfig关键技术.docx_第1页
第1页 / 共18页
Webconfig关键技术.docx_第2页
第2页 / 共18页
Webconfig关键技术.docx_第3页
第3页 / 共18页
Webconfig关键技术.docx_第4页
第4页 / 共18页
Webconfig关键技术.docx_第5页
第5页 / 共18页
Webconfig关键技术.docx_第6页
第6页 / 共18页
Webconfig关键技术.docx_第7页
第7页 / 共18页
Webconfig关键技术.docx_第8页
第8页 / 共18页
Webconfig关键技术.docx_第9页
第9页 / 共18页
Webconfig关键技术.docx_第10页
第10页 / 共18页
Webconfig关键技术.docx_第11页
第11页 / 共18页
Webconfig关键技术.docx_第12页
第12页 / 共18页
Webconfig关键技术.docx_第13页
第13页 / 共18页
Webconfig关键技术.docx_第14页
第14页 / 共18页
Webconfig关键技术.docx_第15页
第15页 / 共18页
Webconfig关键技术.docx_第16页
第16页 / 共18页
Webconfig关键技术.docx_第17页
第17页 / 共18页
Webconfig关键技术.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Webconfig关键技术.docx

《Webconfig关键技术.docx》由会员分享,可在线阅读,更多相关《Webconfig关键技术.docx(18页珍藏版)》请在冰点文库上搜索。

Webconfig关键技术.docx

Webconfig关键技术

一、认识Web.config文件

Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb应用程序的配置信息(如最常用的设置ASP.NETWeb应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。

当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。

如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。

它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式

1.配置节处理程序声明

特点:

位于配置文件的顶部,包含在标志中。

2.特定应用程序配置

特点:

位于中。

可以定义应用程序的全局常量设置等信息.

3.配置节设置

特点:

位于节中,控制A运行时的行为.

4.配置节组

特点:

标记,可以自定义分组,可以放到内部或其它标记的内部.

(二).配置节的每一节

1.

根元素,其它节都是在它的内部.

2.

此节用于定义应用程序设置项。

对一些不确定设置,还可以让用户根据自己实际情况自己设置

用法:

I.

定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.

II.

定义了一个错误重定向页面.

3.

格式:

defaultLanguage="c#"

debug="true"

/>

I.defaultlanguage:

定义后台代码语言,可以选择C#和VB.net两种语言.

IIdebug:

为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行

时的性能。

一般程序员在开发时设置为true,交给客户时设置为false.

4.

格式:

mode="RemoteOnly"

defaultRedirect="error.aspx"

/>

I.mode:

具有On,Off,RemoteOnly3种状态。

On表示始终显示自定义的信息;Off表示始终显示详细的错误信息;RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.

II.defaultRedirect:

用于出现错误时重定向的URL地址.是可选的

III.statusCode:

指明错误状态码,表明一种特定的出错状态.

IV.redirect:

错误重定向的URL.

5.

格式:

requestEncoding="utf-8"

responseEncoding="utf-8"

fileEncoding="utf-8"

/>

I.requestEncoding:

它用来检查每一个发来请求的编码.

II.responseEncoding:

用于检查发回的响应内容编码.

III.fileEncoding:

用于检查aspx,asax等文件解析的默认编码.

6.

格式:

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:

42424"

sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes"

cookieless="false"

timeout="20"

/>

I.mode:

分为off,Inproc,StateServer,SqlServer几种状态

这里有详细介绍此属性:

II.stateConnectionString:

指定A应用程序存储远程会话状态的服务器名,默认为本机

III.sqlConnectionString:

当用会话状态数据库时,在这里设置连接字符串

IV.Cookieless:

设置为true时,表示不使用cookie会话状态来标识客户;否则,相反.

V.TimeOut:

用来定义会话状态存储的时间,超过期限,将自动终止会话.

7.

格式:

"/>

I.Windows:

使用IIS验证方式

II.Forms:

使用基于窗体的验证方式

III.Passport:

采用Passportcookie验证模式

IV.None:

不采用任何验证方式

里面内嵌Forms节点的属性涵义:

I.Name:

指定完成身份验证的Httpcookie的名称.

II.LoginUrl:

如果未通过验证或超时后重定向的页面URL,一般为登录页面,让用户重新登录

III.Protection:

指定cookie数据的保护方式.

可设置为:

AllNoneEncryptionValidation四种保护方式

a.All表示加密数据,并进行有效性验证两种方式

b.None表示不保护Cookie.

c.Encryption表示对Cookie内容进行加密

d.validation表示对Cookie内容进行有效性验证

IV.TimeOut:

指定Cookie的失效时间.超时后要重新登录.

在运行时对Web.config文件的修改不需要重启服务就可以生效(注:

节例外)。

当然Web.config文件是可以扩展的。

你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。

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

之间,出于学习的目的下面的示例都省略了这段XML标记。

1、

作用:

配置ASP.NET身份验证支持(为Windows、Forms、PassPort、None四种)。

该元素只能在计算机、站点或应用程序级别声明。

元素必需与节配合使用。

示例:

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

其中元素loginUrl表示登陆网页的名称,name表示Cookie名称。

2、

作用:

控制对URL资源的客户端访问(如允许匿名用户访问)。

此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。

必需与节配合使用。

示例:

以下示例禁止匿名用户的访问

  

"/>

注:

你可以使用user.identity.name来获取已经过验证的当前的用户名;可以使用web.Security.FormsAuthentication.RedirectFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.具体的

3、

作用:

配置ASP.NET使用的所有编译设置。

默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为False(Web.config文件中有详细说明,此处省略示例)

4、

作用:

为ASP.NET应用程序提供有关自定义错误信息的信息。

它不适用于XMLWebservices中发生的错误。

示例:

当发生错误时,将网页跳转到自定义的错误页面。

其中元素defaultRedirect表示自定义的错误网页的名称。

mode元素表示:

对不在本地Web服务器上运行的用户显示自定义(友好的)信息。

5、

作用:

配置ASP.NETHTTP运行库设置。

该节可以在计算机、站点、应用程序和子目录级别声明。

示例:

控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100

6、

作用:

标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。

可以在计算机、站点、应用程序和子目录级别声明。

示例:

不检测用户在浏览器输入的内容中是否存在潜在的危险数据(注:

该项默认是检测,如果你使用了不检测,一要对用户的输入进行编码或验证),在从客户端回发页时将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。

(注:

该项默认是不验证)

7、

作用:

为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。

示例:

注:

mode="InProc"表示:

在本地储存会话状态(你也可以选择储存在远程服务器或SAL服务器中或不启用会话状态)

cookieless="true"表示:

如果用户浏览器不支持Cookie时启用会话状态(默认为False)

timeout="20"表示:

会话可以处于空闲状态的分钟数

8、

作用:

配置ASP.NET跟踪服务,主要用来程序测试判断哪里出错。

示例:

以下为Web.config中的默认配置:

注:

enabled="false"表示不启用跟踪;

requestLimit="10"表示指定在服务器上存储的跟踪请求的数目

pageOutput="false"表示只能通过跟踪实用工具访问跟踪输出;

traceMode="SortByTime"表示以处理跟踪的顺序来显示跟踪信息

localOnly="true"表示跟踪查看器(trace.axd)只用于宿主Web服务器

自定义Web.config文件配置

自定义Web.config文件配置节过程分为两步。

1.在在配置文件顶部标记之间声明配置节的名称和处理该节中配置数据的.NETFramework类的名称。

2.是在区域之后为声明的节做实际的配置设置。

示例:

创建一个节存储数据库连接字符串

 

 

 

  

 

 

  ......

 

访问Web.config文件你可以通过使用ConfigurationSettings.AppSettings静态字符串集合来访问Web.config文件示例:

获取上面例子中建立的连接字符串。

例如:

protectedstaticstringIsdebug=ConfigurationSettings.AppSettings["debug"]

二、web.config中的session配置详解

打开某个应用程序的配置文件Web.config后,我们会发现以下这段:

  mode="InProc"

  stateConnectionString="tcpip=127.0.0.1:

42424"

  sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes"

  cookieless="false"

  timeout="20"

/>

  这一段就是配置应用程序是如何存储Session信息的了。

我们以下的各种操作主要是针对这一段配置展开。

让我们先看看这一段配置中所包含的内容的意思。

sessionState节点的语法是这样的:

            cookieless="true|false"

            timeout="numberofminutes"

            stateConnectionString="tcpip=server:

port"

            sqlConnectionString="sqlconnectionstring"

            stateNetworkTimeout="numberofseconds"

/>

必须有的属性是属性选项描述

mode设置将Session信息存储到哪里

Ø        Off设置为不使用Session功能,

Ø        InProc设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值,

Ø        StateServer设置为将Session存储在独立的状态服务中,

Ø        SQLServer设置将Session存储在SQLServer中。

可选的属性是:

属性选项描述

Ø        cookieless设置客户端的Session信息存储到哪里,

Ø        ture使用Cookieless模式,

Ø        false使用Cookie模式,这是默认值,

Ø        timeout设置经过多少分钟后服务器自动放弃Session信息,默认为20分钟。

stateConnectionString设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:

"tcpip=127.0.0.1:

42424”。

当mode的值是StateServer是,这个属性是必需的。

sqlConnectionString设置与SQLServer连接时的连接字符串。

例如"datasource=localhost;IntegratedSecurity=SSPI;InitialCatalog=northwind"。

当mode的值是SQLServer时,这个属性是必需的。

stateNetworkTimeout设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。

默认值是10秒钟。

ASP.NET中客户端Session状态的存储

  在我们上面的Session模型简介中,大家可以发现Session状态应该存储在两个地方,分别是客户端和服务器端。

客户端只负责保存相应网站的SessionID,而其他的Session信息则保存在服务器端。

在ASP中,客户端的SessionID实际是以Cookie的形式存储的。

如果用户在浏览器的设置中选择了禁用Cookie,那末他也就无法享受Session的便利之处了,甚至造成不能访问某些网站。

为了解决以上问题,在ASP.NET中客户端的Session信息存储方式分为:

Cookie和Cookieless两种。

  ASP.NET中,默认状态下,在客户端还是使用Cookie存储Session信息的。

如果我们想在客户端使用Cookieless的方式存储Session信息的方法如下:

  找到当前Web应用程序的根目录,打开Web.Config文件,找到如下段落:

  mode="InProc"

  stateConnectionString="tcpip=127.0.0.1:

42424"

  sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes"

  cookieless="false"

  timeout="20"

/>

  这段话中的cookieless="false"改为:

cookieless="true",这样,客户端的Session信息就不再使用Cookie存储了,而是将其通过URL存储。

关闭当前的IE,打开一个新IE,重新访问刚才的Web应用程序,就会看到类似下面的样子:

其中,http:

//localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx中黑体标出的就是客户端的SessionID。

注意,这段信息是由IIS自动加上的,不会影响以前正常的连接。

ASP.NET中服务器端Session状态的存储准备工作:

  为了您能更好的体验到实验现象,您可以建立一个叫做SessionState.aspx的页面,然后把以下这些代码添加到中。

SubSession_Add(senderAsObject,eAsEventArgs)

 Session("MySession")=text1.Value

 span1.InnerHtml="Sessiondataupdated!

Yoursessioncontains:

"&Session("MySession").ToString()&""

EndSub

SubCheckSession(senderAsObject,eAsEventArgs)

 If(Session("MySession")IsNothing)Then

   span1.InnerHtml="NOTHING,SESSIONDATALOST!

"

 Else

   span1.InnerHtml="Yoursessioncontains:

"&Session("MySession").ToString()&"<  /font>"

EndIf

EndSub

 

 

     value="AddtoSessionState"id="Submit1"name="Submit1">

 

     value="ViewSessionState"id="Submit2"name="Submit2">

  这个SessionState.aspx的页面可以用来测试在当前的服务器上是否丢失了Session信息。

将服务器Session信息存储在进程中

  让我们来回到Web.config文件的刚才那段段落中:

  mode="InProc"

  stateConnectionString="tcpip=127.0.0.1:

42424"

  sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes"

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2