2009-10-27 14 views
26

¿Hay alguna manera de html codificar texto sin usar el método System.Web.HttpUtility.HtmlEncode? Quiero implementar mi aplicación de escritorio utilizando .NET 3.5 Client Profile y el problema es que System.Web.dll no forma parte del .NET 3.5 Client Profile, así que tengo que encontrar una solución alternativa.HtmlEncode en C#

+6

veinte preguntas, aceptó cero? –

+5

Lo siento chicos. No le di mucha importancia para responder preguntas. Compruebame ahora :). Lección aprendida. – Cornel

Respuesta

14

Rick Strahl rodó su propio método de codificación, debido a problemas e incoherencias con la forma de codificación de .NET. Echa un vistazo a su publicación en Html and Uri String Encoding without System.Web.

ACTUALIZACIÓN: Después de revisar los enlaces proporcionados por las otras respuestas, la biblioteca AntiXSS proporcionada por Microsoft parece una solución ideal a este problema. Han hecho que la fuente de AntiXSS 4.3 esté disponible en Codeplex: http://antixss.codeplex.com/

La Biblioteca AntiXSS incluye métodos útiles para codificar HTML, URL, JavaScript y XML. Se basa en un modelo seguro de lista blanca, por lo que está prohibido todo lo que no esté permitido en las especificaciones.

Tenga en cuenta que de acuerdo con las notas de la versión 4.3, junio de 2014, esta es la última versión que contendrá un desinfectante, debido a los comentarios negativos que recibió de la comunidad de usuarios por ser demasiado agresivo. Por lo tanto, si desea desinfectar, debe consultar AntiSamy o crear la suya con el HTML agility pack.

+2

Las críticas en AntiXCSS son abrumadoramente negativas: http://wpl.codeplex.com/releases/view/80289#ReviewsAnchor y el enlace de descargas de Microsoft está roto. – jasonjonesutah

+0

Actualicé mi respuesta para incluir comentarios sobre la versión 4.3 AntiXSS y eliminar el enlace roto. Estoy de acuerdo con @Jel Fillmore en que el método System.Net.WebUtility.HtmlEncode es el camino a seguir si está utilizando una versión reciente de .NET. – dthrasher

1

¿Puede incluir this? Tiene un método alternativo de Encode.

1

Puede consultar AntiXSS. Tiene sus propios mecanismos de codificación y está destinado a ser un reemplazo para HtmlEncode de la estructura.

50

Soy un fan de la biblioteca AntiXSS también, pero vale la pena mencionar que .net v4 incluye una nueva clase de utilidad para la codificación en System.dll. Entonces, si tiene la opción de moverse a .net v4, puede usar el perfil del cliente.

System.Net.WebUtility.HtmlEncode