4

ajaxtoolkit の htmleditor を使いたいです。このリンクからツールキットをダウンロードしました

Ajax コントロール ツールキット .NET 3.5

しかし、「サニタイザー プロバイダーが web.config ファイルで構成されていません。公開 Web サイトで HtmlEditorExtender を使用している場合は、サニタイザー プロバイダーを構成してください。それ以外の場合は、EnableSanitization プロパティを false に設定してください。」というエラーが表示されます。

.aspx

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <asp:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" TargetControlID="txtBox1">
    </asp:HtmlEditorExtender>
    <asp:TextBox runat="server" ID="txtBox1" TextMode="MultiLine" Columns="50" Rows="10"
        Text="Hello <b>world!</b>" />

多くのサイトを検索しました。web.config に追加するソリューションとして以下のコードを取得しますが、「タイプ 'AjaxControlToolkit.Sanitizer.AntiXssSanitizerProvider を読み込めませんでした」というエラーが表示されます。また、単語サニタイザーの下に行が来ています

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

AjaxControlツールキット

ここに画像の説明を入力

サニタイザー プロバイダー フォルダー

ここに画像の説明を入力

4

3 に答える 3

2

sanitizer次の行を使用して web.config のセクションを変更し、次を試してください。

<sanitizer defaultProvider="HtmlAgilityPackSanitizerProvider">
    <providers>
        <add name="HtmlAgilityPackSanitizerProvider" type="AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider"></add>
    </providers>
</sanitizer>
于 2013-06-07T16:58:05.097 に答える
2

Nuget パッケージ マネージャーを使用して更新する必要があるため、すべての問題が自動的に解決されます。

以下のように Visual Studio パッケージ マネージャー コンソールにインストールします。

  1. PM > インストール パッケージ AjaxControlToolkit
  2. PM > インストール パッケージ AntiXSS
  3. PM > インストール-パッケージ AjaxControlToolkit.HtmlEditor.Sanitizer
  4. PM > インストール パッケージ HtmlAgilityPack -バージョン 1.4.9

以下の下に新しいセクションを追加します。

    <configuration>  
        <configSections>
        <section name="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit" />
</configSections>        
....
        ...

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

          <dependentAssembly>
            <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.4.9.0" newVersion="1.4.9.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
        <ajaxControlToolkit htmlSanitizer="AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer, AjaxControlToolkit.HtmlEditor.Sanitizer" />
    </configuration>  
于 2015-09-25T10:38:48.993 に答える
0

AjaxControlToolkit.Binary.NET40.zip からすべてのファイルを bin フォルダーにコピーします。

これは、web.config で必要な構成です。

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

....

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

そしてあなたのaspxファイルで:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="CommunitySafeApp.Start.WebForm1" %>

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>


<asp:ToolkitScriptManager runat="Server" />
<asp:TextBox
        ID="txtComments"
        TextMode="MultiLine"
        Columns="60"
        Rows="8"
        runat="server" />

<asp:HtmlEditorExtender
        TargetControlID="txtComments"
        runat="server" />

    </div>

    </form>
</body>
</html>
于 2014-12-05T16:19:52.873 に答える