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" %>
---%>
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
-
+
+