2009-10-22 94 views
2

是否asp.net有一个内置的机制,可以消毒所有的文本框输入,而不是重定向到错误页面?asp.net消毒用户输入

我有一个文本框输入用户可以输入名称,但如果他们尝试输入和标签页自动引发错误。我只想以一种用户友好的方式处理这个错误。

回答

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