此属性是.NET Framework 4.0版中的新属性。我在.Net Framework 4.0版本的解决方案中有web.config文件
<system.web>
<httpRuntime encoderType="Web.AntiXss.AntiXssEncoder, Web.AntiXss"/>
并且效果很好,但如果我将版本更改为3.5,我会得到这个erorr
Unrecognized attribute 'encoderType'. Note that attribute names are case-sensitive.
encoderType属性仅在4.0版本中,如何将其重写为3.5?
修改
或者我如何在.net 3.5项目中使用microsoft AntiXss库?
我将这篇文章用于.net 4.0
http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx
答案 0 :(得分:4)
这仅适用于.Net4
Gets or sets the name of a custom type that
can be used to handle HTML and URL encoding.
你必须明白,这是一个从Net4核心调用的函数的内部更改,这个函数在net 3.5及更低版本中不存在,所以它不是如何编写的,它们就不存在了。
参考: http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.encodertype.aspx
此参数实际上是替换Net 3.5上也存在的类System.Web.Util.HttpEncoder的选项,但没有核心选项替换它。
System.Web.Util.HttpEncoder
已准备好充满电,而Net.4实际上插入了更多功能。用AntiXccEncoder
替换它可能会得到更多的控制但如果没有,那么就不是世界末日(由HG Wells提供)。
另外,我检查是否可以使用一些代码替换此调用,并且在我看来不可能,因为这是在太多点上调用的,例如它调用所有控件属性!,在url调用上,在html渲染上,它在Net4中如此原生,不值得制作如此多的代码来将HttpEncoder更改为AntiXccEncoder。
也许您需要专注于您可能害怕遭受攻击的页面代码,并且无法正确处理输入数据。
答案 1 :(得分:0)
如果您使用的是早于4.5的.NET版本,则需要下载并包含该库作为项目的参考,然后使用较早的库名称作为encodeType设置,如下所示。
<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary" />