在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
预览截图下载链接:http://asphere.aspweb.cz/download.aspx 一、认识Web.config文件Web.config
文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web
应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的
Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个
Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 web.config配置文件(默认的配置设置)以下所有的代码都应该位于 1、<authentication> 节作 用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。< authentication> 元素必需与<authorization> 节配合使用。 示例: 以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。 2、<authorization> 节作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与<authentication> 节配合使用。 示例:以下示例禁止匿名用户的访问 3、<compilation>节作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为False(Web.config文件中有详细说明,此处省略示例) 4、<customErrors>作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。 5、<httpRuntime>节作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。 示例:控制用户上传文件最大为 6、 <pages>作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。<pages>可以在计算机、站点、应用程序和子目录级别声明。 示例:不检测用户在浏览器输入的内容中是否存在潜在的危险数据(注:该项默认是检测,如果你使用了不检测,一要对用户的输入进行编码或验证),在从客户端回发页时将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。(注:该项默认是不验证) 7、<sessionState>作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。 示例: 8、<trace>作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。 示例:以下为Web.config中的默认配置: 自定义Web.config文件配置 示例:创建一个节存储数据库连接字符串
<configuration>
<configSections> <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </configSections> <appSettings> <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/> </appSettings> <system.web> </system.web> </configuration> 访问Web.config文件 你可以通过使用ConfigurationSettings.AppSettings 静态字符串集合来访问 Web.config 文件示例:获取上面例子中建立的连接字符串。例如: 二、web.config中的session配置详解打开某个应用程序的配置文件Web.config后,我们会发现以下这段:
< 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 mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false" timeout="number of minutes" stateConnectionString="tcpip=server:port" sqlConnectionString="sql connection string" stateNetworkTimeout="number of seconds" /> 必须有的属性是:
可选的属性是:
sqlConnectionString 设置与SQL Server连接时的连接字符串。例如"data source= localhost;Integrated Security=SSPI;Initial Catalog=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两种。
< sessionState
mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
ASP.NET中服务器端Session状态的存储准备工作:
< scriptrunat="server">
Sub Session_Add(sender As Object, e As EventArgs) Session("MySession") = text1.Value span1.InnerHtml = "Session data updated! < P>Your session contains: < font color=red>" & Session("MySession"). ToString() & "< /font>" End Sub Sub CheckSession(sender As Object, eAs EventArgs) If (Session("MySession")Is Nothing) Then span1.InnerHtml = "NOTHING, SESSION DATA LOST!" Else span1.InnerHtml = "Your session contains: < font color= red>" & Session("MySession").ToString() & "< /font>" End If End Sub < /script> < formrunat="server"id="Form2"> < inputid="text1"type="text"runat="server"name="text1"> < inputtype="submit"runat="server"OnServerClick="Session_Add" value="Add to Session State " id="Submit1"name="Submit1"> < inputtype="submit"runat="server"OnServerClick="CheckSession" value=" View Session State " id="Submit2"name="Submit2"> < /form> < hrsize="1"> < fontsize="6">< spanid="span1"runat="server" />< /font> 这个SessionState.aspx的页面可以用来测试在当前的服务器上是否丢失了Session信息。 将服务器Session信息存储在进程中 让我们来回到Web.config文件的刚才那段段落中:
< sessionState
mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" /> 当mode的值是InProc时,说明服务器正在使用这种模式。 将服务器Session信息存储在进程外
首先,让我们来打开管理工具->服务,找到名为:ASP.NET State
Service的服务,启动它。实际上,这个服务就是启动一个要保存Session信息的进程。启动这个服务后,你可以从Windows任务管理器-
>进程中看到一个名为 aspnet_state.exe的进程,这个就是我们保存Session信息的进程。 将服务器Session信息存储在SQL Server中
首先,还是让我们来做一些准备工作。启动SQL Server和SQL Server代理服务。在SQL Server中执行一个叫做
InstallSqlState.sql的脚本文件。这个脚本文件将在SQL
Server中创建一个用来专门存储Session信息的数据库,及一个维护Session信息数据库的SQL
Server代理作业。我们可以在以下路径中找到那个文件: 总结 通过这篇文章,你可以看到在Session的管理和维护上,
ASP.NET比ASP有了很大的进步,我们可以更加随意的挑选适合的方法了。对于企业级的应用来说,这无疑对于服务器的同步、服务器的稳定性、可靠性都
是有利的。相信在强大的微软支持下,新一代的电子商务平台将会搭建的更好! 三、Asp.net 关于form认证的一般设置asp.net 关于form认证的一般设置: 1: 在web.config中,加入form认证;
<authentication mode="Forms">
<forms name="auth" loginUrl="index.aspx" timeout="30"></forms> </authentication> <authorization> <deny users="?" /> </authorization> 2: 如果有注册页面时还应该允许匿名用户调用注册页面进行注册;以下代码应该在<configuration><system.web>之间,而不应该包含到<system.web>..</system.web>之间;
<location path="userReg.aspx">
<system.web> <authorization> <allow users="?" /> </authorization> </system.web> </location> 3 在登录成功后要创建身份验证票, 表明已经通过认证的合法用户;if(登陆成功) System.Web.Security.FormsAuthentication.SetAuthCookie(用户名称, false); |
请发表评论