From 384bf58b26e572834226b1075b6442881a49d747 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Tue, 19 May 2026 12:43:16 -0300 Subject: [PATCH 1/3] libreria CKeditor para texto enriquecido --- Business/Business.csproj | 3 + Business/Utility.cs | 39 +- WebLab/Items/ItemEdit2.aspx | 103 +- WebLab/Items/ItemEdit2.aspx.cs | 34 +- WebLab/Items/ItemEdit2.aspx.designer.cs | 4 +- WebLab/WebLab.csproj | 48 + WebLab/ckeditor/adapters/jquery.js | 10 + WebLab/ckeditor/build-config.js | 142 +++ WebLab/ckeditor/ckeditor-webforms.js | 174 ++++ WebLab/ckeditor/ckeditor.js | 907 ++++++++++++++++++ WebLab/ckeditor/config.js | 34 + WebLab/ckeditor/contents.css | 208 ++++ WebLab/ckeditor/lang/en.js | 5 + WebLab/ckeditor/lang/es.js | 5 + .../ckeditor/plugins/about/dialogs/about.js | 8 + .../about/dialogs/hidpi/logo_ckeditor.png | Bin 0 -> 12236 bytes .../plugins/about/dialogs/logo_ckeditor.png | Bin 0 -> 5650 bytes .../plugins/clipboard/dialogs/paste.js | 11 + .../plugins/dialog/dialogDefinition.js | 4 + .../ckeditor/plugins/dialog/styles/dialog.css | 18 + WebLab/ckeditor/plugins/icons.png | Bin 0 -> 3465 bytes WebLab/ckeditor/plugins/icons_hidpi.png | Bin 0 -> 10640 bytes .../ckeditor/plugins/link/dialogs/anchor.js | 9 + WebLab/ckeditor/plugins/link/dialogs/link.js | 30 + .../ckeditor/plugins/link/images/anchor.png | Bin 0 -> 752 bytes .../plugins/link/images/hidpi/anchor.png | Bin 0 -> 1109 bytes WebLab/ckeditor/skins/moono-lisa/dialog.css | 5 + .../ckeditor/skins/moono-lisa/dialog_ie.css | 5 + .../ckeditor/skins/moono-lisa/dialog_ie8.css | 5 + .../skins/moono-lisa/dialog_iequirks.css | 5 + WebLab/ckeditor/skins/moono-lisa/editor.css | 5 + .../skins/moono-lisa/editor_gecko.css | 5 + .../ckeditor/skins/moono-lisa/editor_ie.css | 5 + .../ckeditor/skins/moono-lisa/editor_ie8.css | 5 + .../skins/moono-lisa/editor_iequirks.css | 5 + WebLab/ckeditor/skins/moono-lisa/icons.png | Bin 0 -> 3465 bytes .../ckeditor/skins/moono-lisa/icons_hidpi.png | Bin 0 -> 10640 bytes .../skins/moono-lisa/images/arrow.png | Bin 0 -> 191 bytes .../skins/moono-lisa/images/close.png | Bin 0 -> 615 bytes .../skins/moono-lisa/images/hidpi/close.png | Bin 0 -> 1238 bytes .../moono-lisa/images/hidpi/lock-open.png | Bin 0 -> 1071 bytes .../skins/moono-lisa/images/hidpi/lock.png | Bin 0 -> 1062 bytes .../skins/moono-lisa/images/hidpi/refresh.png | Bin 0 -> 1623 bytes .../skins/moono-lisa/images/lock-open.png | Bin 0 -> 511 bytes .../ckeditor/skins/moono-lisa/images/lock.png | Bin 0 -> 506 bytes .../skins/moono-lisa/images/refresh.png | Bin 0 -> 757 bytes .../skins/moono-lisa/images/spinner.gif | Bin 0 -> 2984 bytes WebLab/ckeditor/skins/moono-lisa/readme.md | 46 + WebLab/ckeditor/styles.js | 137 +++ WebLab/ckeditor/vendor/promise.js | 13 + 50 files changed, 1966 insertions(+), 71 deletions(-) create mode 100644 WebLab/ckeditor/adapters/jquery.js create mode 100644 WebLab/ckeditor/build-config.js create mode 100644 WebLab/ckeditor/ckeditor-webforms.js create mode 100644 WebLab/ckeditor/ckeditor.js create mode 100644 WebLab/ckeditor/config.js create mode 100644 WebLab/ckeditor/contents.css create mode 100644 WebLab/ckeditor/lang/en.js create mode 100644 WebLab/ckeditor/lang/es.js create mode 100644 WebLab/ckeditor/plugins/about/dialogs/about.js create mode 100644 WebLab/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png create mode 100644 WebLab/ckeditor/plugins/about/dialogs/logo_ckeditor.png create mode 100644 WebLab/ckeditor/plugins/clipboard/dialogs/paste.js create mode 100644 WebLab/ckeditor/plugins/dialog/dialogDefinition.js create mode 100644 WebLab/ckeditor/plugins/dialog/styles/dialog.css create mode 100644 WebLab/ckeditor/plugins/icons.png create mode 100644 WebLab/ckeditor/plugins/icons_hidpi.png create mode 100644 WebLab/ckeditor/plugins/link/dialogs/anchor.js create mode 100644 WebLab/ckeditor/plugins/link/dialogs/link.js create mode 100644 WebLab/ckeditor/plugins/link/images/anchor.png create mode 100644 WebLab/ckeditor/plugins/link/images/hidpi/anchor.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/dialog.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/dialog_ie.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/dialog_ie8.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/dialog_iequirks.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/editor.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/editor_gecko.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/editor_ie.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/editor_ie8.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/editor_iequirks.css create mode 100644 WebLab/ckeditor/skins/moono-lisa/icons.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/icons_hidpi.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/arrow.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/close.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/hidpi/close.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/hidpi/lock.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/hidpi/refresh.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/lock-open.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/lock.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/refresh.png create mode 100644 WebLab/ckeditor/skins/moono-lisa/images/spinner.gif create mode 100644 WebLab/ckeditor/skins/moono-lisa/readme.md create mode 100644 WebLab/ckeditor/styles.js create mode 100644 WebLab/ckeditor/vendor/promise.js diff --git a/Business/Business.csproj b/Business/Business.csproj index 454fbe09..37b5e782 100644 --- a/Business/Business.csproj +++ b/Business/Business.csproj @@ -59,6 +59,9 @@ ..\packages\EPPlus.4.5.3.3\lib\net40\EPPlus.dll + + ..\WebLab\Bin\HtmlSanitizationLibrary.dll + False ..\Referencias\Iesi.Collections.dll diff --git a/Business/Utility.cs b/Business/Utility.cs index 5518d367..a1c007cb 100644 --- a/Business/Utility.cs +++ b/Business/Utility.cs @@ -14,6 +14,7 @@ //using Sql.Data using System.Security.Cryptography; +using Microsoft.Security.Application; using OfficeOpenXml; using System.Drawing; using OfficeOpenXml.Style; @@ -1114,8 +1115,42 @@ public static void ExportGridViewToExcel(GridView grid, string nombreArchivo) // 2.2) Escribir filas del footer // ================================ - GridViewRow filaFooter = grid.FooterRow; - col = 1; + + #endregion + + #region textoEnriquecido + + /// + /// Sanitiza un texto HTML para eliminar contenido potencialmente peligroso. + /// + /// + /// Instancia de utilizada para decodificar el contenido HTML. + /// + /// + /// Texto HTML recibido desde el cliente. + /// + /// + /// Devuelve el HTML sanitizado y seguro para almacenar o mostrar. + /// + + public string SanitizarHTML(HttpServerUtility server,string texto) + { + // Leer HTML sin que ASP.NET lo bloquee + string html = server.UrlDecode(texto); + // Sanitizar + string limpio = Sanitizer.GetSafeHtmlFragment(html); + + return limpio; + } + + public string PasarHTMLaPlano(HttpServerUtility server,string texto) + { + string html = server.UrlDecode(texto); + + string textoPlano = Regex.Replace(html, "<.*?>", string.Empty); + + return HttpUtility.HtmlDecode(textoPlano).Trim(); + } if (tieneValores(filaFooter.Cells)) { diff --git a/WebLab/Items/ItemEdit2.aspx b/WebLab/Items/ItemEdit2.aspx index 3a203408..ee0666f4 100644 --- a/WebLab/Items/ItemEdit2.aspx +++ b/WebLab/Items/ItemEdit2.aspx @@ -1,35 +1,45 @@ <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ItemEdit2.aspx.cs" Inherits="WebLab.Items.ItemEdit2" MasterPageFile="~/Site1.Master" %> - <%@ Register assembly="Anthem" namespace="Anthem" tagprefix="anthem" %> -<%--<%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %> ---%> - - - - - + - - - - + + + + + + + - + +