2009-10-22 4 views
2

Est-ce que asp.net a un mécanisme intégré qui peut nettoyer toute l'entrée de la zone de texte au lieu de la rediriger vers la page d'erreur?asp.net désinfection de l'entrée utilisateur

J'ai une entrée de zone de texte où un utilisateur peut entrer un nom, mais s'ils tentent d'entrer et <> étiquettes la page renvoie automatiquement une erreur. Je veux juste gérer cette erreur d'une manière conviviale.

Répondre

2

Vous pouvez utiliser le ASP.NET RegularExpressionValidator control avec un motif comme: ^[^<>]*$

<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" /> 

Le RequiredFieldValidator est utilisé conjointement avec le RegularExpressionValidator pour éviter les entrées vides. Si cette zone de texte est facultative et n'a besoin d'être validée que lorsque quelque chose est entré, vous n'avez pas besoin d'utiliser RequiredFieldValidator. L'avantage de cette façon est que l'erreur peut être gérée avec élégance et l'utilisateur peut être averti sur la même page. Cependant, si vous avez besoin de faire cela pour beaucoup de zones de texte et que vous voulez juste présenter quelque chose de plus agréable que la page d'erreur, vous pouvez gérer l'erreur ValidateRequest pour fournir un message plus convivial et garder l'utilisateur sur la même page. remplacez-le par une page d'erreur personnalisée). Pour plus d'informations, consultez le post de Kirk Evans: Handling ValidateRequest errors within a Page (reportez-vous à la section intitulée Remplacement de la méthode OnError).

3

Vous voulez regarder la bibliothèque pour AntiXSS cette. C'est un dll donc il est facile de s'y arrêter et de commencer à l'utiliser.

Le téléchargement est à CodePlex.