配置应用程序_第1页
配置应用程序_第2页
配置应用程序_第3页
配置应用程序_第4页
配置应用程序_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

配置应用程序第一页,共二十四页,编辑于2023年,星期五本章要点Web.Config文件结构ASP.NET认证与授权机制ASP.NET缓存机制ASP.NET程序调试方法主题与外观文件第二页,共二十四页,编辑于2023年,星期五Web.Config文件概述Web.Config文件用来保存一些常量或者访问权限设置等,例如可以将数据库连接字符串存放在其中。Web.Config的配置是层次式的,也就是说可以应用程序的根目录和其中的子文件夹下建立该文件,每一个Web.Config只在该文件夹和其子文件夹下起作用。每一个子文件夹可以继承父文件夹的设置,并覆盖相同的选项。所有的应用程序都会继承C:\Windows\Microsoft.NET\Framework\(版本号)\config\machine.config文件,大部分常用的设置在该文件中都已经设置好了。Web.Config文件就是一个XML文件,常见的Web.Config配置如下:1.txt第三页,共二十四页,编辑于2023年,星期五在Web.Config中,所有配置都必须放在<configuration>和</configuration>之间。在<appSettings>和</appSettings>之间是自定义配置,通常用来自己设置一些常量,add标识添加一个常量,key是常量的名称,value是常量的值。在程序中,可以通过ConfigurationManager.AppSettings["常量名称"]来获取设置的值。注意在使用时需要添加System.Configuration引用。在<connectionStrings>和</connectionStrings>之间用于配置对于数据库的连接字符串,可以通过ConfigurationManager.ConnectionStrings["常量名称"].ConnectionString来获取数据的连接字符串内容。第四页,共二十四页,编辑于2023年,星期五在<system.web>和</system.web>之间的标记是关于整个应用程序的设置,常见的设置项如下:1)sessionState标记用来设置会话状态,其中timeout是会话时间;mode指定会话信息的存储位置,它有3个值,InProc表示存储在本地计算机上,stateserver表示存储在另一台计算机上,sqlserver表示存储在SQLServer数据库中;cookieless表示是否采用cookie来保存数据。2)compilation标记用来设置编译程序时的选项。其中defaultLanguage表示编译时使用的语言;debug表示生成的是二进制码还是调试二进制码,true表示调试二进制码,如有错误,会在页面上明确显示错误位置。3)trace标记用来设置网站跟踪的选项。其中enabled表示是否启用跟踪,true表示启用;requestLimit表示存储请求的个数;pageOutput表示是否在每一个页面上输出跟踪信息;traceMode表示跟踪结果排序方式;localOnly表示是否只能在本地服务器上跟踪。第五页,共二十四页,编辑于2023年,星期五4)globalization用来设置国际化选项,如编码和文化信息等。RequestEncoding指定处理请求所用的编码方式;responseEncoding指定发送数据采用的编码方式。Gb2312表示中国简体,还可以使用us-ascii、UTF-7、UTF-8等。5)customErros用来自定义错误处理页面。defaultRedirect表示如果发生错误或者客户访问一个不存在的.aspx页面时自动引导至该页面;mode表示自定义错误信息状态,On表示开,Off表示关,RemoteOnly表示只在本地计算机上收到完整的错误信息,而远程客户端则看不到错误提示。其中,RemoteOnly为默认值。6)pages标记用来设置关于整个页面的选项,buffer选项表示是否开发缓存;autoEventWireup表示是否自动执行页面事件,theme表示页面主题。第六页,共二十四页,编辑于2023年,星期五ASP.NET认证与授权在实际Web软件项目中,往往需要输入用户名和密码才能访问系统,例如电子邮箱、网上银行等。这里涉及了认证和授权的过程。认证是指每个来用客户首先需要验证用户名和密码,通过后才可以进入应用程序。授权指的是进入应用程序的用户有什么权限,能访问哪些资源。一般的应用程序会提供一个首页,该页面不需要认证就可以访问,在该页面输入用户名和密码,通过“认证”后,就可以访问其他被“授权”的页面。关于安全的实现方法,可以自己编码实现,例如在首页上增加注册、登录模块,如果用户通过验证,就可以令Session["UserName"]等于用户名。然后在其他页面中增加判断,如果Session["UserName"]为空,就可以利用Response.Redirect重定向首页,如果不为空,就可以访问该页面。在ASP.NET中提供了更为简单的解决方案,只需要配置Web.Config文件即可。ASP.NET提供了基于Windows的认证、基于表单的认证和基于微软Passport的认证三种方式,实际使用是基于表单的认证最为灵活和常见。第七页,共二十四页,编辑于2023年,星期五基于表单的认证方法将用户的用户名和密码保存在自己的数据库文件、文本文件或XML文件中。它需要在应用程序中添加一个登录页面,当用户访问任何页面时,都会自动引导到该登录页面,用户必须输入用户名和密码,然后将用户输入的用户名和密码与数据库中的用户名和密码进行比较,如果正确,将在客户端上创建一个认证cookie,这种方法不需要在服务器上进行额外设置,使用简单。具体实现步骤如下:1)在应用程序的Web.Config文件中添加如下语句,表示该应用程序采用基于表单的验证方式:<authenticationmode="Forms"><formsname="认证Cookie名称"loginUrl="登录页面路径"></forms></authentication>其中name属性表示在客户端创建的认证cookie名称,可以随意命名。loginUrl属性表示登录页面路径,可以使用相对路径或绝对路径。第八页,共二十四页,编辑于2023年,星期五2)配置授权方式,需要在Web.Config中进行如下设置:<authorization><denyusers="用户列表"/><allowusers="用户列表"/></authorization>在授权部分,如果是多个用户,可以用逗号隔开。另外,有两个特殊的通配符,*表示所有用户,包括通过认证和未通过认证的用户。?表示所有匿名用户。如<denyusers="?"/>表示拒绝匿名用户,<allowusers="*"/>表示允许所有用户。此外还可以采用<allowroles="系统管理员"/>的形式,允许某类角色访问,具体示例参见本书后面章节中网站项目案例中的认证授权部分。第九页,共二十四页,编辑于2023年,星期五3)创建一个登录页面,该登录页面中的核心语句为:第1句表示创建一个以用户名称为参数的认证cookie,true表示关闭浏览器后依然保留,这样客户下一次访问时就不必再次输入,false表示不保留。第2句表示重定向到指定页面。4)如果需要退出登录,则使用下面语句,该语句删除刚才建立的认证cookie。FormsAuthentication.SignOut();在配置授权方式时,如果对于一些页面希望能够个性化设置,可以采用<location>和</location>标记,该标记和<system.web></system.web>位于同一层次,具体示例如下:FormsAuthentication.SetAuthCookie(用户名称,true|false);Response.Redirect(指定页面);//重定向到初始页面第十页,共二十四页,编辑于2023年,星期五<locationpath="images"><system.web><authorization><allowusers="*"/></authorization></system.web></location>第十一页,共二十四页,编辑于2023年,星期五使用缓存所谓缓存,就是将常用的数据或对象保存在内存中,再次使用时就可以从内存中直接调用。其优点是会提高访问速度,缺点是使用太多缓存的话会消耗大量内存资源。常用的缓存有页输出缓存、页片段缓存和数据缓存。第十二页,共二十四页,编辑于2023年,星期五页输出缓存所谓页输出缓存,就是将第一次请求的页面存储在内存中,以后再次请求时直接从内存中调用。实现页输出缓存的方法是在页面顶端添加如下缓存指令:<%@OutputCacheDuration="60"Location="Any"VaryByParam="None"%>其中Duration属性表示缓存时间,单位为秒,超出时间将重新生成该页面。Location表示缓存存放位置,Any表示任何位置,是系统默认值,Client表示缓存到客户端,Server表示缓存到服务器端,None表示不启用缓存。VarByParam表示分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与随GET方法属性发送的查询字符串值对应,或与使用POST方法发送的参数对应。将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档。可能的值包括none、星号(*)以及任何有效的查询字符串或POST参数名称。默认值为none。第十三页,共二十四页,编辑于2023年,星期五页片段缓存所谓页片段缓存,就是只缓存页面中的部分内容,其实现方法是将部分内容创建为一个用户控件,然后在其中添加@OutputCache缓存指令即可。数据缓存所谓数据缓存,就是将数据或DataSet对象等保存在缓存中。其实现方法是利用Cache类,该类语法类似与Session对象和Application对象。例如,将DataSet对象保存在缓存中可以利用如下方法:DataSetds=newDataSet();//…从数据库中读取记录填充datasetCache["data"]=ds;从缓存中读取数据可以采用如下方法:ds=(Dataset)Cache["data"];第十四页,共二十四页,编辑于2023年,星期五调试程序在开发程序时,经常会发生错误,可以采用多种调试方式来快速查找错误。1.使用Response.Write方法可以使用Response.Write方法在程序中输出中间结果。尤其在数据库程序开发时,可以用它输出SQL语句。2.使用Debug 有时候发生错误时,并不告诉你错误发生在哪一行,就可以在页面顶端添加 <%@Pagedebug="true"%> 或者,在Web.Config中添加 <compilationdebug="true"/> 当发生错误时,就可以显示错误的具体信息。第十五页,共二十四页,编辑于2023年,星期五3.使用trace(跟踪)采用trace,可以对应用程序中变量的值和代码执行情况进行跟踪。它分为页面跟踪和应用程序跟踪两种方式。实现页面跟踪只要在页面顶端添加<%@Pagetrace="true"%>执行时,就会在页面上显示详细跟踪信息。实现应用程序跟踪只要在Web.Config中添加<%traceenabled="true"%>执行完毕后,它会将跟踪情况保存到系统文件trace.axd中。在浏览器中输入http://应用程序路径/trace.axd就可以显示跟踪信息。第十六页,共二十四页,编辑于2023年,星期五应用主题与外观文件 主题是属性设置的集合,使用这些设置可以定义页面和控件的外观,然后在某个Web应用程中的所有页、整个Web应用程序或服务器上的所有Web应用程中一致地应用此外观。主题包含的元素有:外观、层叠样式表(CSS)、图像和其他资源。在ASP.NET中应用主题的步骤为:1)利用VS2005创建名为“Theme”的网站,然后在解决方案中点击右键,在弹出菜单中执行“添加ASP.NET文件夹”→“主题”命令,这样就在网站根目录下生成了“App_Themes”文件夹,并要求我们输入主题名称,这里输入“MyTheme”作为主题名称,如图8.1所示。第十七页,共二十四页,编辑于2023年,星期五图8.1添加主题第十八页,共二十四页,编辑于2023年,星期五 可以在App_Themes文件夹上单击鼠标右键,从而添加更多的主题。2)在解决方案资源管理器中,选择“MyTheme”主题,单击鼠标右键,在弹出菜单中执行“添加新项”命令,在弹出的“添加新项”对话框中,选择“外观文件”项,并单击“添加”按钮,如图8.2所示。图8.2添加外观文件第十九页,共二十四页,编辑于2023年,星期五3)在添加的“SkinFile.skin”文件中,添加以下内容: <asp:Buttonrunat="server" BackColor="Red" ForeColor="White" Font-Name="Arial"

Font-Size="12px"></asp:Button> <asp:TextBoxrunat="server"CssClass="txtBox"></asp:TextBox>第二十页,共二十四页,编辑于2023年,星期五4)在“MyTheme”主题下继续添加样式表文件,名为可采用系统默认名称

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论