升级至ASP.net 4容易引发错误的几点改变

英文原文:

ASP.NET 4 Breaking Changes

http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes

 

 

控件生成的代码的变化:

Image  ImageButton控件 控件不再添加 border="0" 属性。

 BaseValidator 类和验证控件不再默认红色文本。

 HtmlForm 控件不呈现 name 属性。

Table 控件不再呈现 border="0" 属性。

不支持用户输入的控件(例如Label,如果Enabled属性设置为false ,将不再生成disabled="disabled"属性

 

ClientIDMode变化

ClientIDMode 在ASP.NET 4允许您设定如何生成前台编号 。ASP.NET早期版本,默认的行为等同于   asp.net 4 中将ClientIDMode设置为AutoID。但是,asp.net 4默认设置是Predictable

如果您使用Visual Studio 2010升级您从ASP.NET 2.0或ASP.NET 3.5应用程序,该工具会自动添加一个设置为 Web.config中 文件中保留了早期版本的行为。NET框架。但是,如果您通过更改IIS来实现升级,ASP.NET使用默认的新模式。要禁用新的客户ID模式,要在以下设置 Web.config中 文件:

<pages ClientIDMode="AutoID" / >

HtmlEncode和UrlEncode方法单引号编码的改变

在ASP.NET 4中,HttpUtilityHttpServerUtility类中的HtmlEncodeUrlEncode方法单引号(')进行了如下改变

HtmlEncode 编码为' .

 UrlEncode 编码为 %27.

ASP.NET页面(.aspx)的页面分析严格

 ASP.NET 页面(.aspx 文件)和用户控件(.ascx 文件)在ASP.NET 4严格,将拒绝多种无效的标记。例如,下面的两个片段在ASP.NET的早期版本中没问题,但在ASP.NET 4分析器报错

<asp:HiddenField runat="server" ID="SomeControl" Value="sampleValue"; />

请注意使其 HiddenField 标记失效的分号

<asp:LinkButton runat="server" ID="SomeControl" οnclick="someControlClicked"

      style="display:inline;  CssClass="searchLink"  />

注意 CssClass 前的引号的没有闭合

 

浏览器定义文件的更新

旧的浏览器将不再支持,增加了google浏览器

 http://aspnet.codeplex.com/releases/view/41420

 

System.Web.Mobile.dll从Web配置文件中删除

System.Web.Mobile.dll类已内置到ASP.net4

 

ASP.NET请求验证的改变

在ASP.NET请求验证功能提供了对跨站点脚本(XSS)攻击的保护。ASP.NET的早期版本仅仅在ASP.NET页执行。

在ASP.NET 4请求验证启用了所有的请求,因为它HTTP的BeginRequest前启用,因此,请求验证适用于所有ASP.NET资源,而不仅仅是.aspx页。包括如Web服务和自定义HTTP处理程序。

要恢复到2.0的ASP.NET请求验证功能的行为,要在以下设置 Web.config中 文件添加

<httpRuntime requestValidationMode="2.0" />

否则,即使在页面代码中添加validaterequest="false"也不起作用。

 

 

默认哈希算法现在改为HMACSHA256

ASP.NET使用加密和散列算法,以帮助表单身份验证Cookie数据和视图状态的安全。默认情况下,ASP.NET 4现在使用哈希操作对饼干和视图状态的HMACSHA256算法。 ASP.NET的早期版本使用的是旧式HMACSHA1算法。

如果您运行ASP.NET 2.0/ASP.NET 4混合的环境下,如窗体身份验证Cookie的数据必须工作across.NET框架版本。要配置一个ASP.NET Web应用程序使用旧HMACSHA1算法,要在以下设置 Web.config中 文件:

<machineKey validation="SHA1" />

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值