From d2d5e1a98225e16d2d65288e828c279c60ed5375 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/6] libreria CKeditor para texto enriquecido --- Business/Business.csproj | 3 + Business/Utility.cs | 39 +- WebLab/Items/ItemEdit2.aspx | 89 +- WebLab/Items/ItemEdit2.aspx.cs | 33 +- WebLab/Items/ItemEdit2.aspx.designer.cs | 4 +- WebLab/WebLab.csproj | 44 + 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, 1953 insertions(+), 65 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 1e4ed3e8..19a44025 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 8b9e37c6..7338219c 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; @@ -1147,8 +1148,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 934dcbe3..fd3e040d 100644 --- a/WebLab/Items/ItemEdit2.aspx +++ b/WebLab/Items/ItemEdit2.aspx @@ -1,26 +1,23 @@ <%@ 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" %> ---%> - - - - - + - - - - + + + + + + - + +