Эквивалент htmlspecialcharacs PHP в .NET?

В PHP есть отличная функция htmlspecialcharacters (), в которой вы передаете ей строку, и она заменяет все специальные символы HTML их безопасными эквивалентами. Это практически универсальный инструмент для очистки ввода. Очень хорошо, верно?

Ну есть ли эквивалент в какой-либо из библиотек .NET?

Если нет, может ли кто-нибудь ссылаться на примеры кода или библиотеки, которые делают это хорошо?

19.08.2008 19:35:30
5 ОТВЕТОВ
РЕШЕНИЕ

Попробуй это.

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
11
19.08.2008 19:37:48
9
16.05.2017 16:34:37

Не знаю, есть ли точная замена, но есть метод, HtmlUtility.HtmlEncodeкоторый заменяет специальные символы их HTML-эквивалентами. Близкий родственник HtmlUtility.UrlEncodeдля рендеринга URL. Вы также можете использовать элементы управления валидатора, например RegularExpressionValidator, RangeValidatorи System.Text.RegularExpression.Regexубедиться, что вы получаете то, что хотите.

4
15.01.2016 14:54:13

На самом деле, вы можете попробовать этот метод:

HttpUtility.HtmlAttributeEncode()

Почему? Ссылаясь на страницу HtmlAttributeEncode в документах MSDN :

Метод HtmlAttributeEncode преобразует только кавычки ("), амперсанды (&) и левые угловые скобки (<) в эквивалентные символьные объекты. Это значительно быстрее, чем метод HtmlEncode.

2
11.08.2009 15:20:57

В дополнение к приведенным ответам: При использовании механизма просмотра Razor (который является механизмом просмотра по умолчанию в ASP.NET), использование символа «@» для отображения значений будет автоматически кодировать отображаемое значение. Это означает, что вам не нужно использовать кодировку.

С другой стороны, когда вы не хотите, чтобы текст был закодирован, вы должны указать это явно (используя @ Html.Raw ). Что, на мой взгляд, хорошо с точки зрения безопасности.

0
16.04.2015 16:35:37