2009-10-22 2 views
2

Имеет ли asp.net встроенный механизм, который может дезинфицировать все входные данные текстового поля вместо перенаправления на страницу с ошибкой?asp.net sanitizing user input

У меня есть ввод текстового поля, где пользователь может ввести имя, но если они пытаются ввести и <> теги, страница автоматически выдает ошибку. Я просто хочу обработать эту ошибку удобным для пользователя способом.

ответ

2

Вы можете использовать ASP.NET RegularExpressionValidator control с рисунком, как: ^[^<>]*$

<asp:RegularExpressionValidator ID="rev" runat="server" 
    ControlToValidate="txtBox" 
    ErrorMessage="The <> tags are not allowed!" 
    ValidationExpression="[^<>]*" /> 
<asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="txtBox" 
    ErrorMessage="Value can't be empty" /> 

RequiredFieldValidator используется в сочетании с RegularExpressionValidator предотвратить пустые записи. Если это текстовое поле является необязательным, и его необходимо проверить только после того, как что-то введено, вам не обязательно использовать RequiredFieldValidator.

Преимущество этого в том, что ошибка может быть обработана изящно, и пользователь может быть уведомлен на той же странице.

Однако, если вам нужно сделать это для многих текстовых полей, и вы просто хотите представить что-то приятнее, чем страница с ошибкой, вы можете обработать ошибку ValidateRequest, чтобы предоставить более дружественное сообщение и сохранить пользователя на одной странице (не только замените его на страницу пользовательской ошибки). Для получения дополнительной информации перейдите на страницу Kirk Evans: Handling ValidateRequest errors within a Page (см. Раздел «Переопределение метода OnError»).

3

Вы хотите посмотреть на AntiXSS библиотеке что. Это dll, поэтому легко заглянуть и начать использовать его.

Загрузить на CodePlex.