Не удалось загрузить тип "AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider".

Я пытался использовать htmleditorextender, но я получаю ошибку. ниже мои настройки

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:TextBox runat="server" ID="textBoxGalleryUrl" CssClass="cstmtxtclr" />
<asp:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" TargetControlID="textBoxGalleryUrl"></asp:HtmlEditorExtender>

Мои настройки web.conf:

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

  <system.web>
    <!--<httpRuntime requestValidationMode="2.0"/>-->
    <compilation debug="true" targetFramework="4.0"/>

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

У меня есть следующие библиотеки в папке bin;

AntiXSSLibrary.dll
SanitizerProviders.dll
HtmlSanitizationLibrary.dll

Но я все еще получаю эту ошибку;

Could not load type 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider'.

Почему я получаю эту ошибку?

4 ответа

Решение

С помощью AntiXss как дезинфицирующее средство по умолчанию больше не поддерживается с июня 2012 года. Из официального анонса, по-видимому, новая версия AntiXss ломает слишком много вещей.

Использовать AjaxControlToolkit с HTML Agility Pack Сначала вам нужно установить пакет с помощью Nuget ( инструкция).

Тогда вы можете использовать HTML Agility Pack как ваше дезинфицирующее средство путем изменения вашего web.config как это:

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

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

Надеюсь это поможет.

HTML Agility Pack должен быть установлен для всех новых версий Ajax Control Toolkit. К сожалению, многие ответы в Интернете неверны

Поиск высокого и низкого уровня для решения той же проблемы, я решил, что Ajax Control Kit также необходимо загрузить с помощью диспетчера пакетов библиотеки...

PM > Установить-пакет AjaxControlToolkit

Это решило проблему для меня.

Рекомендуется загрузить последнюю версию пакета Html Agility Pack отсюда: http://htmlagilitypack.codeplex.com/ поместить в корзину и добавить ссылку на нее в свой проект.

Или используйте команду установки:

PM> Install-Package HtmlAgilityPack

Вы можете посмотреть по этой ссылке http://nuget.org/packages/HtmlAgilityPack

Вам не нужно использовать или ссылаться на AntiXSSLibrary, просто используйте HtmlAgilityPackSanitizerProvider, и ваша ошибка исчезнет

Удачи

Другие вопросы по тегам