ASP.NET4与VS2010 Web开发页面服务改进

2013 年 9 月 18 日3530

IT专家网 > winsystem

ASP.NET4与VS2010 Web开发页面服务改进

  本文将接着上一篇 ASP.NET4与VS2010Web开发核心服务改进 继续讨论核心ASP.NET服务方面的改进。

  四、永久重定向页面

  一种常见的Web应用程序做法是,随着时间的推移经常移动网页和其他内容,从而导致搜索引擎失效链接的积累。在ASP.NET中,开发商通常采用的处理旧网址请求的方案是,使用 Response.Redirect方法把对旧网址的请求转发到新网址。然而,当用户尝试访问的旧网址时,使用Redirect方法会导致一个“HTTP 302 Found”(临时重定向)响应,从而相应地产生一次额外的HTTP往返。

  ASP.NET 4增加了一个新的RedirectPermanent辅助方法,可以方便地发出“HTTP 301 Moved Permanently”响应,如下面的例子所示:

  RedirectPermanent("/newpath/foroldcontent.aspx");

  搜索引擎及其他识别永久重定向的用户代理程序都将会存储起与此内容相关的新的网址,从而消除不必要的因临时重定向导致的HTTP往返。

  五、极具伸缩性的会话状态管理

  ASP.NET针对在Web场中存储会话状态提供了两个默认选项:一个调用进程外会话状态服务器的会话状态提供程序,和一个能够把数据存储在Microsoft SQL Server数据库中的会话状态提供程序。由于这两个选项都牵涉到在Web应用程序的工作进程外存储状态信息,所以,在把会话状态发送到远程存储之前必须把它序列化。根据开发者在会话状态中保存信息的多少,序列化数据的尺寸可能增长到相当大。

  ASP.NET 4引入了一个针对两种进程外会话状态提供程序的新的压缩选项。当显示在下面的示例中的compressionEnabled配置选项被设置为true时,ASP.NET将会使用.NET框架的System.IO.Compression.GZipStream类来压缩(和解压)序列化的会话状态。

通过把此新的属性简单地添加到Web.config文件中,在Web服务器中具有空闲的CPU周期的应用程序便可以实现大幅度地减小序列化的会话状态数据的大小。


  六、扩展URL最大长度

  ASP.NET 4引入了新的选择用于扩展应用程序URL的规模。早期版本的ASP.NET把URL路径的长度限制为最长260个字符(基于NTFS文件路径限制)。在ASP.NET 4中,您可以选择增加(或减少)这个数目以便更适合于你的应用程序,这是使用两个新的httpRuntime配置属性实现的。下面的例子显示了这些新的属性的使用。

    为了使用更长或更短的路径(不包括协议、服务器名称和查询字符串的URL中的部分),你可以修改maxRequestPathLength属性的值。为了使用更长或更短的查询字符串,你可以修改maxQueryStringLength属性的值。

  在ASP.NET 4中,您还可以配置由URL字符检查机制所使用的字符。当ASP.NET查找到一个URL路径中的无效字符时,它将拒绝该请求,并发出一个HTTP 400错误。在以前版本的ASP.NET中,URL字符检查仅限于一个固定的字符集。在ASP.NET 4,您可以自定义一个有效的字符集,这可以通过使用HttpRuntime配置元素中新的requestPathInvalidChars属性实现,如下面的示例所示:

    默认情况下,requestPathInvalidChars属性定义7个无效的字符。(默认情况下,在分配给requestPathInvalidChars的字符串中,小于号(“<”),大于号(“<”)和符号&都被进行编码,因为文件Web.config是一个XML文件。)您可以根据需要自定义设置无效的字符。

  【注意】ASP.NET 4始终会拒绝包含在0x00~0x1F范围的ASCII字符的URL路径,因为这些都是IETF的RFC 2396文件中所规定的无效的URL字符。在运行6.0或更高的IIS的Windows 版本中,Http.sys协议设备驱动程序会自动拒绝其中包含这些字符的URL。

  七、可扩展请求校验

  ASP.NET请求验证机制会搜索传入的HTTP请求数据中的通常用在跨站点脚本(XSS)攻击中的字符串。如果发现存在潜在的XSS字符串,请求验证将会标志出被怀疑的字符串并返回一个错误。内置的请求验证只有当发现最常见的跨站脚本攻击中使用的字符串时才返回一个错误。以前的XSS验证过于积极,从而导致许多的误判。不过,有时候用户的确可能会请求一个具有攻击意味的验证,但也有可能想有意放宽对特定的网页或特定类型请求的跨站脚本检查。

  在ASP.NET 4中,对请求验证功能进行了扩展,以便您可以使用自定义的请求验证逻辑。为了扩展请求验证,你可以从新的System.Web.Util.RequestValidator类派生一个类,并配置应用程序(在Web.config文件的httpRuntime节中)以使用你的自定义类型。下面的示例显示了如何配置一个自定义的请求验证类:

相关文章

关键词: 技术

责任编辑:杜飞

专题推荐

原创文章

微博互动

白皮书

All Rights Reserved, Copyright 2004-2013, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i

0 0