资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第9章,性能优化、配置、部署与安全,主要内容,性 能 优 化 ASP.NET的配置 部署ASP.NET应用程序 ASP.NET的安全,9.1 性 能 优 化,使用Cache对象 使用输出缓存,9.1.1 使用Cache对象,Cache对象是一个可以被缓存起来的对象,这些对象可以用来存储信息,采用键/值对的形式,例如: 向Cache对象中添加项: Cache“CacheId“=CacheValue; 或: Cache.Add(“CacheId“,CacheValue,Dependency,AbsoluteExpiration, SlidingExpiration,CacheItemPriority,CacheItemRemovedCallback); 或: Cache.Insert(“CacheId“,CacheValue,Dependency,AbsoluteExpiration, SlidingExpiration,CacheItemPriority,CacheItemRemovedCallback);,Cache的Add和Insert方法的参数含义,9.1.2 使用输出缓存,页面输出缓存 页面片段输出缓存 XML Web Service输出缓存,页面输出缓存,在ASP.NET中,所有的页面都是在被请求时才将其编译成可执行代码,若每次请求都要编译将会影响响应时间。若使用页面输出缓存,则可以提高效率。 若使用页面输出缓存,当页面第一次被请求时,页面首先被编译,然后将其进行缓存,那么以后每个对该页面的请求将不必重新编译,而是直接从缓存中输出。只有当在源文件发生更改或者缓存到期时,缓存的页面将被删除。 要实现页面输出缓存,需在Web窗体的HTML视图下增加一个OutputCache指令。它有两个属性:Duration属性,用来设置缓存的时间,以秒为单位;VaryByParam属性,用来设置传递到页面的参数,若参数发生变化,则缓存将被刷新。如: 表示页面缓存20秒,当传递到页面的参数Name的值发生变化时,页面也将被刷新。,页面片段输出缓存,对页面输出缓存,有时是不实用的,因为,将整个页缓存要占用大量的内存,若某个页面的大部分内容都是动态创建且经常发生变化,那么将这样的页面缓存就没有实际意义。因此,有必要对页面中不经常变化的部分标识出来,单独进行缓存,这就是页面片段缓存。 要实现页面片段缓存,就要将这部分内容设计成用户控件,在设计用户控件时,在HTML视图中增加一个OutputCache指令即可实现,其余的与页面缓存的做法相当。,XML Web Service输出缓存,Web Service是Web应用程序的重要技术之一,尤其在分布式的编程中经常使用Web Service技术,而且还通常是远程访问。因此,对其支持缓存技术尤为重要。要实现XML Web Service输出缓存,只要在WebMethod属性中添加CacheDuration属性(单位:秒)即可。如: WebMethod CacheDuration=100 public int add(int x,int y) return x+y;,9.2 ASP.NET的配置,动态调试编译 自定义错误信息 身份验证 授权 应用程序级别跟踪记录 会话状态设置 全球化设置,动态调试编译,设置compilation debug=“true“以启用 ASPX 调试。否则,将此值设置为false将提高此应用程序的运行性能。若设置compilation debug=“true“,则将调试符号(.pdb信息)插入到编译页中。因为这将创建执行起来较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为false。使用格式如下: ,自定义错误信息,设置customErrors mode=“On“ 或customErrors mode=“RemoteOnly“ 以启用自定义错误信息,或设置为Off以禁用自定义错误信息。为每个要处理的错误添加 标记。 On设置表示始终显示自定义(友好的)信息。 Off设置表示始终显示详细的ASP.NET错误信息。 RemoteOnly设置表示只对不在本地 Web 服务器上运行的用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便不向远程客户端显示应用程序的详细信息。使用格式如下: ,身份验证,此节设置应用程序的身份验证策略。可能的模式是Windows、Forms、Passport和None。None模式表示不执行身份验证。 Windows 模式表示IIS根据应用程序的设置执行身份验证(基本、简要或集成 Windows)。在IIS中必须禁用匿名访问。 Forms模式为用户提供一个输入凭据的自定义窗体(Web 页),然后在应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。 Passport身份验证是通过 Microsoft 的集中身份验证服务执行的,它为成员站点提供单独登录和核心配置文件服务。使用格式如下: ,授权,此节设置是对整个应用程序的授权策略。可以允许或拒绝不同的用户或角色访问应用程序资源。通配符“*”表示任何人,“?”表示匿名(未经身份验证的)用户。使用格式如下: ,应用程序级别跟踪记录,应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。设置trace enabled= “true“ 可以启用应用程序跟踪记录。如果 pageOutput=“true“,则在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序根目录中的“trace.axd” 页来查看应用程序跟踪日志。使用格式如下: ,会话状态设置,默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。如果Cookie不可用,则可以通过将会话标识符添加到URL来跟踪会话。若要禁用Cookie,请设置sessionState cookieless =“true“。使用格式如下: ,全球化设置,此节设置应用程序的全球化设置。使用格式如下: ,全球化设置,以上就是Web.config的基本配置。有关身份验证的具体应用,将在讲述ASP.NET的安全知识时介绍。下面将介绍如何在Web.config中存储一些重的字符串信息,其中,最常用的是存储数据库连接字符串。在Web.config中加入如下代码: ,全球化设置,而在代码中通过以下语句来引用: this.sqlConnection1.ConnectionString=(string) (configurationAppSettings.GetValue(“sqlConnection1.ConnectionString“, typeof(string); 这样处理带来的好处是:当要将应用程序部署到新的计算机时,数据库的连接字符串一般会发生变化,这时,只要修改Web.config中数据库连接字符串即可,而不用修改程序中的语句。因为,Web.config文件是一个文本文件,容易修改,而程序代码要是发生变化,则要重新编译。,9.3 部署ASP.NET应用程序,部署Visual Studio 2005环境下开发的Web应用程序比较简单,一般采取设虚拟目录的方法,主要步骤如下: 复制Web应用程序到目标计算机的硬盘中,如果使用数据库,需要配置数据库。 将Web应用程序的文件夹设成虚拟目录。先打开“控制面板”,双击“管理工具”,再双击“Internet服务管理器”图标,打开“Internet信息服务”窗口。将IIS文件夹展开,选择“默认Web站点”并右击,选择“新建”“虚拟目录”命令,设置别名,选择Web应用程序的文件夹,再依次单击“确定”“下一步”“完成”按钮。 在浏览器中浏览网页。,使用“复制”来部署应用程序,使用“复制”来部署应用程序可以分为以下两种方法: 使用Windows资源管理器将上面提到的必需文件用copy的方法复制到Web服务器的虚拟目录中,或用FTP上传到Web服务器的虚拟目录中。 使用Visual Studio.NET 2003中的“复制项目”部署应用程序。 单击Visual Studio.NET 2003集成环境中“项目”菜单中的“复制项目”命令,将会出现如图所示的对话框。,“复制项目”对话框,使用“复制”来部署应用程序,在“复制项目”对话框中,“复制”选项区域有以下三个选项: 仅限于运行该应用程序所需的文件:只复制.aspx、DLL文件及所有附加支持文件。 所有项目文件。 源项目文件夹中的所有文件。 通过以上复制将会在站点中出现Copy_of_writebook文件夹,其中writebook是相应要部署的项目名称。,使用Web安装项目部署应用程序,在Visual Studio.NET 2003中,使用Web安装项目部署应用程序就是在解决方案管理器中添加新项,出现如图所示的对话框。,“添加新项目”对话框,使用Web安装项目部署应用程序,在如图所示的对话框中选择“Web安装项目”模板,并给安装项目命名,默认名称为WebSetup1。然后单击“确定”按钮,出现如图所示的界面。,“文件系统”页面,使用Web安装项目部署应用程序,在如图所示的界面中右击“Web应用程序文件夹”,单击“添加”“项目输出”命令,出现如图所示的“添加项目输出组”对话框。 在图中选择“主输出”和“内容文件”选项(可以使用【Ctrl】键选择多个选项)后单击“确定”按钮。再从图中单击“Web应用程序文件夹”,在属性窗口中设置VirtualDirectory属性值为项目安装文件夹,及DefaultDocument属性设置为Web应用的默认文档名,如:default.aspx。 最后,生成解决方案,将会在如图所示的指定目录中生成指定的安装文件,如:WebSetup.msi。安装时只要在目标服务器中运行该文件即可。,“添加项目输出组”对话框,9.4 ASP.NET的安全,验证用户数据输入 验证用户身份,9.4.1 验证用户数据输入,对于用户输入的数据,可能存在有意或无意的攻击,因此,对用户输入的数据要进行验证。 对用户输入数据的验证可以在客户端进行,也可以在服务器端进行。若只在客户端进行数据验证,则将会存在安全隐患,若只在服务器端进行数据验证,则对合法用户的不正确输入将会延长响应时间,因为要在服务器端验证时发现错误后回发给客户端。因此,对用户的数据输入一般会采用客户端和服务器端同时验证的方式。 下面通过一个例子来说明只进行客户端验证存在的安全隐患。,9.4.2 验证用户身份,Forms身份验证 Windows身份验证 Passport身份验证,Forms身份验证,Forms身份验证是最灵活的一种身份验证方法,可以对不同的页面设置不同的访问权限,其访问权限的实现通常是通过角色来控制的,且角色信息可以存放在数据中。Forms身份验证是一种基于表单的验证,它是建立在Cookie的基础上,当用户通过Forms身份验证后,在客户端将会自动保存一个Cookie。不过该Cookie是临时的,当会话结束时,表示身份的Cookie也将失效。,Forms身份验证,Forms身份验证是面向Internet用户的身份验证。要实现Forms身份验证,要完成以下几个步骤: 在Web.config中配置:。 要创建一个登录页面。 在登录页面中请求身份验证。 在Global.asax的Application_AuthenticateRequest方法中进行角色分配。 在Web.config中对不同的页面进行授权。,Windows身份验证,Windows身份验证也是一种实用的身份验证方法,主要应用于局域网内的Web应用程序中。它将页面访问的身份与Windows用户集成在一起。于是,当用户请求访问页面时,IIS并不对用户身份进行验证,而是把身份验证的任务交给Windows来完成。要实现Windows身份验证,要完成以下几个步骤:,Windows身份验证,在Web.config中配置:。 对IIS中的应用程序虚拟目录的目录
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号