我正在使用asp:CreateUserWizard控件并在MSDN上阅读:
网页中的用户输入可能包含恶意客户端 脚本。默认情况下,ASP.NET网页验证用户输入以确保 输入不包含HTML元素或脚本。只要 此验证已启用
这是我正在使用的代码:
<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName" CausesValidation="true"/>
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
CssClass="field-validation-error" ErrorMessage="User name is required." />
<asp:RegularExpressionValidator runat="server" ControlToValidate="UserName"
CssClass="field-validation-error" ErrorMessage="User name must not contain \ (backslashes)."
ValidationExpression="[^\\]*" />
现在,如果我尝试创建一个名为<script>alert('hello')</script>
我的应用程序的用户,则崩溃时会出现500内部错误。
我在所有这些事件中尝试过代码,看看我是否可以捕获错误,但代码永远不会被命中:
RegisterUser_CreateUserError()
RegisterUser_CreatingUser()
所以我的两个问题是,为什么输入没有被验证?我在哪里可以捕获这个错误被抛出(第二个问题可能不那么重要,一旦我知道如何做第一部分)?
我必须在这里找到一些非常简单的东西。