Asp.net中web.config配置文件最全面详解 (转载至CSDN)

转载至csdn链接如下
https://blog.csdn.net/u011966339/article/details/64905062

web.config是一个XML文件,用来储存Asp.net Web应用程序的配置信息,包括数据库连接字符、身份安全验证等,可以出现在Asp.net Web应用程序服务器上的任何目录中,每个Web.config将配置设置应用到它所在的目录及虚拟子目录下,子目录中的设置可以随意重写或修改在父目录中指定的设置。该文件不需要重启服务就可以生效。

Asp.net网站IIS启动时会加载配置文件中的配置信息,然后缓存这些信息,这样就不必每次去读取配置信息。在运行过程 中Asp.net应用程序会监视配置文件的变化情况,一旦编辑修改了这些配置信息,就会重新读取这些配置信息并缓存。

当我们要读取某个节点或是节点组信息时,是按照下列方式搜索的:

(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。

所以如果我们对某个网站或某个文件平人有特定要求的配置,可以在相应的文件夹下创建一个web.config文件,覆盖掉上级文件夹中的web.config文件中的同名配置即可。这些配置信息的寻找只查找一次,以后便缓存起来供以后调用。在Asp.net应用程序运行过程中,如果web.config文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息就会丢失(如存储在内存中的Session)。

网上搜集web.config文件基本用法,如下:


<system.web>

<!-Pages标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。可以在计算机、站点、应用程序和子目录级别声明。这里的几个属性的意思是默认主页为Index,主题是Default,不检测用户在浏览器输入的内容中是否存在潜在的危险数据(注:该项默认是检测,如果你使用了不检测,一要对用户的输入进行编码或验证),在从客户端回发页时将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。(注:该项默认是不验证)禁用ViewState-->












































<!--通过 节可以配置 ASP.NET 使用的 安全身份验证模式,以标识传入的用户。共有四种认证方式:Windows、Forms、PassPort和None。其中:

Windows:基于windows的身份验证。使用windows身份验证与IIS身份验证一起使用(IIS验证模式包括basic、digest或Integrated Windows Authentication),IIS验证完成后,Asp.net就使用己验证的身份授予访问权限,这是默认设置。

Forms: 基于窗体的身份验证,使用HTTP客户端重定向功能。使用Forms验证,可以根据用户在基于Web的窗体上输入的凭证,为他们提供访问站点或资源的权限。终端用户尝试访问Web站点时,使用匿名身份进入站点,这是默认的身份验证模式。如果他是未通过验证上的请求即匿名的,就会被Asp.net重定向功能重定向到特定的登录页面上(如果下文的的loginUrl)。终端用户输入相应的登录信息,通过了身份验证过程后,就给他提供一个HTTP cookie,以便在后续的请求中使用。这是日前大多数web应用程序使用的方式,推荐使用此方式。

Passport: 采用Passport cookie验证模式,是MS提供的一种集中式身份验证服务,它为成员站点提供了一个登录和核心配置服务。不推荐使用本模式。

None: 不采用任何验证方式。该元素只能在计算机、站点或应用程序级别声明。且元素必须与配合使用。-->












<!--

为当前应用程序配置会话状态设置。mode 分为off,Inproc,StateServer,SqlServer几种状态。

mode = "InProc" 在本地存储会话位置,也可以选择在远程服务器或SAL服务器中或不启用会话状态,特点:具有最佳的性能,速度最快,但不能跨多台服务器存储共享。

mode = "StateServer" 存储在状态服务器中。特点:当需要跨服务器维护用户会话信息时,使用此方法。但是信息存储在状态服务器上,一旦状态服务器出现故障,信息将丢失。

mode="SqlServer" 存储在sql server中,特点:工作负载会变大,但信息不会丢失。stateConnectionString:指定Asp.net应用程序存储远程会话状态的服务器名,默认为本机。

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

Cookieless:设置为flase时,表示使用cookie会话状态来标识客户,设置为true时表示用户浏览器不支持cookie时启用会话状态。

timeout:表示会话超时时间(即会话可以处于空闲状态的分钟数)。

关于此SessionState配置更详细的介绍请见:Session存储和配置

-->






































</system.web>

<system.net>

———————————————— 版权声明:本文为CSDN博主「Archy_Wang_1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u011966339/article/details/64905062
posted @ 2022-11-16 11:40  anekos  阅读(798)  评论(1)    收藏  举报