ControlToValidate="futureDatetxt" OnServerValidate="ValidateDateInFuture"> </asp:CustomValidator> <br /> <asp:Button ID="submitBtn" Runat="server" Text="Submit" /> </div> </form> </body> </html>
注意 上面的代码使用的方法DateTime.TryParse是ASP.NET2.0提供的新方法.
过滤自由文本字段
过滤输入,你需要使不安全的输入不被当作代码来对待.例如,你的程序使用户不能读取共享数据库内的数据,你首先需要过滤数据使它们在输出的时候没有危险.使用HttpUtility.HtmlEncode方法先对输入值进行编码.
允许有限的输入HTML代码
在@ Page页面元素内加以下字段ValidateRequest = "false"禁用ASP.NET请求验证 使用HtmlEncode方法对输入的字符串进行编码 使用StringBuilder对象,调用它的Replace方法对字符中的HTML进行替换 下面的代码给出了这种办法的示例.此页面设置ValidateRequest = "fasle"禁用了ASP.NET请求验证.它的HTML编码为了显示简单的文本格式允许使用<b>和<i>标记.
<%@ Page Language="C#" ValidateRequest="false"%>
<script runat="server">
void submitBtn_Click(object sender, EventArgs e) { // Encode the string input StringBuilder sb = new StringBuilder( HttpUtility.HtmlEncode(htmlInputTxt.Text)); // Selectively allow and <i> sb.Replace("<b>", "<b>"); sb.Replace("</b>", ""); sb.Replace("<i>", "<i>"); sb.Replace("</i>", ""); Response.Write(sb.ToString()); } </script>
<html> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="htmlInputTxt" Runat="server" TextMode="MultiLine" Width="318px" Height="168px"></asp:TextBox>
上一篇:ASP.NET性能最佳实践
下一篇:调用存储过程并且使用返回值的基本方法
|