【问题标题】:Sanitize/validate input in ASP.NET 5 and MVC 6在 ASP.NET 5 和 MVC 6 中清理/验证输入
【发布时间】:2016-03-31 08:48:20
【问题描述】:

根据this 页面,在 ASP.NET 5 中,您不能依赖请求验证,我认为这是 IIS/ASP.NET 的一个特性。由于 ASP.NET 5 可以通过 linux 支持自托管,因此我们必须自己做。听起来不错。

问题是,为 ASP.NET 5 推荐的方法是什么?是否有内置的 MVC 6 属性可以清理/验证?旧方法到底检测到了什么?脚本标签?样式标签?

【问题讨论】:

  • 关于asp.net 5的文章没有区别。只需使用带有显示注释的视图模型。
  • 在 asp.net 5 之前,请求框架本身(httpmodules/handlers)内置了请求验证。您可以通过 web.config 禁用它,但它是 GAC 中处理程序的一个功能, 在 IIS 中使用。我知道如何自己使用模型属性来做到这一点,但到目前为止,微软还没有官方的方法来做到这一点,他们应该这样做。也许是一个中间件,默认情况下会拦截发布的表单值以供站点范围使用?同上。这在 Web 开发中非常重要,Microsoft 应该提供关于我们应该如何做的答案。

标签: asp.net-core asp.net-core-mvc sanitization


【解决方案1】:

我推荐 ASP.NET 5 的 FluentValidation:

public class PersonValidator : AbstractValidator<Person> {
    public PersonValidator() {
        RuleFor(x => x.Id).NotNull();
        RuleFor(x => x.Name).Length(0, 10);
        RuleFor(x => x.Email).EmailAddress();
        RuleFor(x => x.Age).InclusiveBetween(18, 60);
    }
}

https://fluentvalidation.net/aspnet#asp-net-mvc-5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2016-06-07
    • 2010-09-14
    • 1970-01-01
    • 2017-05-31
    • 2022-10-21
    相关资源
    最近更新 更多