Подтвердить что ты не робот

HtmlEncode в С#

Есть ли способ html кодировать некоторый текст без использования метода System.Web.HttpUtility.HtmlEncode? Я хочу развернуть свое настольное приложение с помощью .NET 3.5 Client Profile, и проблема в том, что System.Web.dll он не является частью профиля клиента .NET 3.5, поэтому мне нужно найти обходной путь.

4b9b3361

Ответ 1

Рик Стралл перевел свой собственный метод кодирования из-за проблем и несогласованностей с .NET способом кодирования вещей. Посмотрите его сообщение на Html и Uri String Encoding без System.Web.

ОБНОВЛЕНИЕ:. После проверки ссылок, предоставленных другими ответами, библиотека AntiXSS, предоставленная Microsoft, кажется идеальным решением этой проблемы. Они сделали источник AntiXSS 4.3 доступным для Codeplex: http://antixss.codeplex.com/

Библиотека AntiXSS содержит полезные методы для кодирования HTML, URL-адресов, JavaScript и XML. Это основано на безопасной модели белых списков, поэтому все, что запрещено в спецификациях, запрещено.

Обратите внимание, что в соответствии с примечаниями к выпуску для 4.3, июнь 2014 года, это последний выпуск, который будет содержать дезинфицирующее средство, из-за отрицательной обратной связи, полученной от сообщества пользователей, за чрезмерную агрессивность. Так что если это дезинфицирующее средство, которое вы хотите, вы должны посмотреть AntiSamy или создать свой собственный пакет гибкости HTML.

Ответ 2

Я тоже поклонник библиотеки AntiXSS, но стоит упомянуть, что .net v4 включает новый класс утилиты для кодирования в System.dll. Поэтому, если у вас есть возможность перейти на .net v4, вы можете использовать профиль клиента.

System.Net.WebUtility.HtmlEncode

Ответ 3

Можете ли вы включить this? Он имеет альтернативный метод кодирования.

Ответ 4

Вы можете посмотреть AntiXSS. Он имеет собственные механизмы кодирования и предназначен для замены фреймворка HtmlEncode.