是否有任何属性或任何功能正在阻止上述问题..
我做了一个注册表格..我的朋友将标签插入用户名..它会在服务器端引发错误..我试图阻止它。验证,但..它不能..
我做到了..看看这一行......
txt_countryname.Text = HttpUtility.HtmlEncode(txt_countryname.Text);
但它不起作用... - Sikender 0秒前[删除此评论]
帮帮我......
答案 0 :(得分:2)
这种行为有充分的理由 - 避免cross site scripting攻击。
可以通过将其添加到您的web.config:来禁用
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
通读this article,了解禁用请求验证的原因。
正如CodeMonkey所指出的,您也可以在@page指令中以单页为基础执行此操作:
<%@ Page validateRequest="false" %>
通过不将所有您的网页暴露给xss,这将是一种更好的方法。
答案 1 :(得分:2)
你也可以使用asp:RegularExpressionValidator 例如:
<asp:TextBox ID="txt_username" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="Error" ErrorMessage="some error message" ValidationExpression="^[a-zA-Z0-9]+[a-zA-Z0-9]{4,15}$" SetFocusOnError="True" ControlToValidate="txt_username">
答案 2 :(得分:2)
您希望该页面禁用脚本验证。您收到该错误的原因是因为ASP.NET默认验证传入的帖子。
答案 3 :(得分:1)
Server.HtmlEncode
答案 4 :(得分:1)