【发布时间】:2014-01-02 11:31:40
【问题描述】:
我已阅读有关为 ASP.NET 请求自定义输入验证以避免可怕的“检测到潜在危险值”的信息。我正在使用以下代码来允许尖括号通过验证。
public class RequestValidator : System.Web.Util.RequestValidator {
protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) {
validationFailureIndex = 0;
switch (requestValidationSource) {
case RequestValidationSource.Form:
if (control is CustomTextBox) { // How can I get the control?
// allow angle brackets to pass validation
value = value.Replace("<", "<").Replace(">", ">");
}
break;
}
return base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);
}
}
现在我允许这些具有潜在危险的值通过验证过滤器,我希望确定它们得到了正确处理。这是一个 Web 窗体环境,所以我想创建一个 CustomTextBox 控件,覆盖 Text 属性和 HtmlEncode 字符串。
从上面代码中的注释可以看出,我想限制我的RequestValidator,以便它只允许“危险”值通过验证,前提是我可以确定它们将由我的CustomTextBox。当我们只需要 value 和 collectionKey 时,我如何才能获得对 Control 的引用?
【问题讨论】:
标签: c# asp.net validation webforms