2

嗨,我已经从 Microsoft 下载了最新版本的 Ajax Toolkit,我正在尝试为 htmlEditorExtender 设置 sanitizer,但是在尝试构建站点时我不断收到以下错误:

“无法识别的元素‘消毒剂’。”

按照 Ajax 网站上的指南,我尝试添加以下内容:

<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
  <sanitizer defaultProvider="AntiXssSanitizerProvider">
    <providers>
      <add name="AntiXssSanitizerProvider"
           type="AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider"></add>
    </providers>
  </sanitizer>
  <assemblies>
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  </assemblies>
</compilation>

到我的 web.config 以及:

<sectionGroup name="system.web">
  <section name="sanitizer"
      requirePermission="false"
      type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, 
    AjaxControlToolkit"/>
</sectionGroup>  

我对 ASP.net 和 VB.net 还很陌生,而且我以前从未使用过 Ajax 工具包。在我的 Bin 文件夹中,我有 AjaxControlToolkit.dll,它是在按照说明将工具包控件添加到工具箱时安装的。

有什么我遗漏或需要做的事情才能让这一切正常工作吗?

4

1 回答 1

3

<sanitizer>标签直接放在后面<system.web>,如下所示:

<system.web>
    <sanitizer defaultProvider="HtmlAgilityPackSanitizerProvider">
      <providers>
        <add name="HtmlAgilityPackSanitizerProvider" type="AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider"></add>
      </providers>
    </sanitizer>

使用HtmlAgilityPackSanitizerProviderAntiXssSanitizerProvider 参考这篇文章“自 2012 年 6 月起,不再支持使用 AntiXss 作为默认消毒剂。从官方公告来看,显然新版本的 AntiXss 破坏了太多东西。”

之后的第一个标签<sectionGroup>也一样<configuration>

<configuration>
  <configSections>
    <sectionGroup name="system.web">
      <section name="sanitizer"
          requirePermission="false"
          type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, 
        AjaxControlToolkit"/>
    </sectionGroup>
  </configSections>

这用同样的错误解决了我的情况。

于 2013-05-05T21:39:48.257 回答