首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

采用一个自创的验证框架实现对数据实体的验证

昨天晚上突发奇想,弄了一个简易版的验证框架,用于进行数据实体的验证。...本篇文章分上下两篇,上篇介绍如果来使用这个验证框架,《下篇》介绍背后的设计原理和具体实现。 一、定义最简单的验证规则 我们先看看一个最简单的验证规则如何应用到对应的实体类型上。...执行上面的程序,这次的出现的验证消息就是我们希望的了。 1: 验证成功! 2: 验证失败!...采用一个自创的"验证框架"实现对数据实体的验证[编程篇] 采用一个自创的"验证框架"实现对数据实体的验证[设计篇] 采用一个自创的"验证框架"实现对数据实体的验证[改进篇] 采用一个自创的"验证框架..."实现对数据实体的验证[扩展篇]

89970

采用一个自创的验证框架实现对数据实体的验证

Attribute)的方式应用到相应的数据实体类的属性上,ValidatorAttribute是这些特性的基类; ValidationError:在Validator进行数据验证的时候,如果数据实体对象顺利通过验证...,则返回Null,否则验证的错误信息封装成一个ValidationError对象返回。...Validator通过Validate方法对传入的数据实体进行验证,验证失败的错误结果以ValidationError对象的形式返回;通过将相应的Validator应用到数据类型的目标属性上的ValidatorAttribute...WCF扩展让验证工作自动执行; 通过Resource的方式定义验证消息模板,可以获得多语言文化的支持 其他 采用一个自创的"验证框架"实现对数据实体的验证[编程篇] 采用一个自创的"验证框架"实现对数据实体的验证...[设计篇] 采用一个自创的"验证框架"实现对数据实体的验证[改进篇] 采用一个自创的"验证框架"实现对数据实体的验证[扩展篇]

2.3K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    采用一个自创的验证框架实现对数据实体的验证

    关于“验证框架”,先后推出了《编程篇》、《设计篇》和《改进篇》,本不打算再写《XXX篇》的。但是今天收到两个园友的短消息,想了解一下如何定义自己的验证规则。...这实际上涉及到对该“验证框架”的扩展,即如何自定义Validator和对应的ValidatorAttribute与ValidatorElementAttribute。...三、为StringLengthValidator创建ValidatorElementAttribute 在这个“验证框架”中,每一个非CompositeValidator不但可以单独实施验证,还可以作为...UpperBoundType = RangeBoundaryType.Inclusive)] 9: public string Bar { get; set; } 10: } 练完收工:) 采用一个自创的"验证框架..."实现对数据实体的验证[编程篇] 采用一个自创的"验证框架"实现对数据实体的验证[设计篇] 采用一个自创的"验证框架"实现对数据实体的验证[改进篇] 采用一个自创的"验证框架"实现对数据实体的验证

    81780

    采用一个自创的验证框架实现对数据实体的验证

    为此,我对这个“验证框架”进行了相应的改进,让CompositeValidator具有了解析“验证表达式”的能力。...二、在新的CompositeValidator中使用表达式来定义验证规则 如果你采用改进后的验证框架,上面的验证规则可以通过表达式的形式直接写在CompositeValidatorAttribute特性中...由于逻辑稍微有点复杂,有兴趣的朋友可以分析一下EnterLib的源码,也可以直接下载本验证框架的源代码分析表达式解析的逻辑。...return this.RuleName.GetHashCode() ^ this.Property.GetHashCode(); 122: } 123: } 采用一个自创的"验证框架..."实现对数据实体的验证[编程篇] 采用一个自创的"验证框架"实现对数据实体的验证[设计篇] 采用一个自创的"验证框架"实现对数据实体的验证[改进篇] 采用一个自创的"验证框架"实现对数据实体的验证

    952100

    常见HTTP请求错误码大全

    响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。...304 (未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。...浏览器应当向用户显示任何包含在此类错误响应中的实体内容。...代码 说明 400 (错误请求) 服务器不理解请求的语法。 401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 (禁止) 服务器拒绝请求。...除非这是一个HEAD 请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。 这些状态码适用于任何响应方法。

    2.9K30

    【愚公系列】2023年04月 Java教学课程 137-Spring MVC框架的Response响应详解

    ---- 一、响应 Spring MVC框架中的Response响应指的是处理器方法返回值被转换成HTTP响应的对象,其中包含了响应的状态、内容等信息。...304 未修改 && 此次请求返回的网页未修改,继续使用上次的资源。 305 使用代理 && 请求者应该使用代理访问该网页。 307 临时重定向 && 请求的资源临时从其他位置响应。...400(Bad Request) 错误请求 && 服务器无法解析该请求。 401 未授权 && 请求没有进行身份验证或验证未通过。 403(Forbidden) 禁止 && 服务器拒绝此次请求。...413 请求实体过大 && 请求实体过大,超出服务器的处理能力。 414 请求的URL过长 && 请求网址过长,服务器无法处理。 415 不支持类型 && 请求的格式不被请求页面支持。...500 服务器内部错误 && 服务器遇到错误,无法完成请求。 501 未实现 && 服务器不具备完成请求的能力。 502 错误网关 && 服务器作为网关或代理,从上游服务器收到无效响应。

    41520

    常用的http网页错误代码表---------495引发的一个简单到爆,但基于国内环境只能呵呵呵的血案

    Multiple Choices 多种选择 301 Moved Permanently 永久移动 302 Found 发现 303 See Other 查看其它 304 Not Modified 未修改...Expectation Failed 预期失败 418 I'm a teapot 我是一个茶壶 421 Misdirected Request 误导请求 422 Unprocessable Entity 无法处理的实体...非官方扩展码 103 Checkpoint 检查点 420 Method Failure (Spring Framework) 故障的方法(Spring框架) 420 Enhance Your...主要指镜像源服务器出现异常。 573 单个资源访问频率过高 579 上传成功但是回调失败。 包括业务服务器异常;七牛服务器异常;服务器间网络异常。 599 服务端操作失败。...640 调用列举资源 (list) 接口时,指定非法的marker参数。 701 在断点续上传过程中,后续上传接收地址不正确或ctx信息已过期。

    4K30

    OWASP Top10-1

    SQL注入防护 关闭SQL错误回显 前端输入字符白名单验证(长度,类型等) 对输入的特殊字符使用转义处理 SQL操作使用PreParedStatement SQL服务运行于专门的账号,并且使用最小权限...攻击方式 当应用程序解析XML文件时包含了对外部实体的引用,攻击者传递恶意包含XML代码的文件,读取指定的服务器资源 漏洞原因 XML协议文档本身的设计特性,可以引入外部的资源;定义XML文件时使用的外部实体引入功能...攻击方式 攻击者利用错误配置攻击,获取敏感数据或提升权限 漏洞原因 开发者维护人员设置了错误的配置,如:Python开发中对于Django框架在生产环境启用了Debug模式 漏洞影响 可以让攻击者获取到敏感数据...可以让攻击者提升权限,如未修改应用程序配置的默认密码,未删除应用程序安装程序目录文件等 目录遍历 漏洞防护 检查文件扩展名 重命名上传文件 控制上传文件的权限,如关闭执行权限 移除临时文件,备份文件...冒用使用者身份 漏洞防护 验证输入/接受的字符,过滤或者替换非法字符 使用白名单机制 A8 不安全的反序列化漏洞 攻击方式 攻击者利用应用程序反序列化功能,反序列化恶意对象攻击应用程序 漏洞原因 应用程序在反序列化数据对象时

    1.2K30

    喵星人教你 HTTP 状态码

    出现此状态码是表示正常状态。 201 Created(已创建) ? 请求成功并且服务器创建了新的资源。 202 Accepted(已接受) ? 服务器已接受请求,但尚未处理。...304 Not Modified(未修改) ? 自从上次请求后,请求的资源未修改过。服务器返回此响应时,不会返回资源的内容,因此可节省带宽和开销。 305 Use Proxy(使用代理) ?...请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 403 Forbidden(禁止) ? 服务器拒绝请求。 404 Not Found(未找到) ? 服务器找不到请求的资源。...请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体,该请求不可接受。 408 Request Timeout(请求超时) ? 服务器等候请求时发生超时。...413 Request Entity Too Large(请求实体过大) ? 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

    68120

    Python 爬虫 NO.4 HTTP 响应状态码

    使用GET和POST请求查看 304 未修改 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。...使用GET请求重定向 400 错误请求 服务器无法解析该请求 401 未授权 请求没有进行身份验证或验证未通过 402 保留,将来使用 403 禁止访问 服务器拒绝此请求 404 未找到 服务器无法根据客户端的请求找到资源...410 已删除 请求的资源已永久删除 411 需要有效长度 服务器不接受不含有效内容长度标头字段的请求 412 未满足前提条件 服务器未满足请求者在请求中设置的其中一个前提条件 413 请求实体过大...请求实体过大,超出服务器的处理能力 414 请求 URI 过长 请求网址过长,服务器无法处理 415 不支持类型 请求格式不被请求页面支持 416 请求范围不符 页面无法提供请求的范围 417 未满足期望值...服务器未满足期望请求标头字段的要求 500 服务器内部错误 服务器内部错误,无法完成请求 501 未实现 服务器不支持请求的功能,无法完成请求 502 错误网关 作为网关或者代理工作的服务器尝试执行请求时

    1.4K10

    网络请求返回HTTP状态码(404,400,500)

    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。...4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 代码 说明 400 (错误请求) 服务器不理解请求的语法。(解决办法传参格式不正确) 401 (未授权) 请求要求身份验证。...413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。...5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。 代码 说明 500 (服务器内部错误) 服务器遇到错误,无法完成请求。...例如,服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。

    15K60

    Java面试之常见HTTP错误代码

    304 (未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。...4xx(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。(客户端) 代码 说明 400 (错误请求) 服务器不理解请求的语法。 401 (未授权) 请求要求身份验证。...413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。...5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。...代码 说明 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

    1.2K30

    HTTP Status Code

    出现此状态码是表示正常状态。 201 Created(已创建) 请求成功并且服务器创建了新的资源。 202 Accepted(已接受) 服务器已接受请求,但尚未处理。...当且仅当后续的请求所使用的方法是 GET 或者 HEAD 时,用户浏览器才可以在没有用户介入的情况下自动提交所需要的后续请求。...304 Not Modified(未修改) 自从上次请求后,请求的资源未修改过。服务器返回此响应时,不会返回资源的内容,因此可节省带宽和开销。...401 Unauthorized(未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 Forbidden(禁止) 服务器拒绝请求。...413 Request Entity Too Large(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

    1.2K10

    http请求状态码

    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。...401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 (禁止) 服务器拒绝请求。 404 (未找到) 服务器找不到请求的网页。...413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。...http状态返回代码 5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。...http状态返回代码 代码 说明 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

    1.5K10

    HTTP返回码总结,拿走不谢!

    ## 标题 ## 304(未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305(使用代理) 请求者只能使用代理访问请求的网页。...401(未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403(禁止) 服务器拒绝请求。 404(未找到) 服务器找不到请求的网页。...413(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414(请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理。...http状态返回代码 5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。...http状态返回代码 代码 说明 500(服务器内部错误) 服务器遇到错误,无法完成请求。 501(尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

    2.1K20

    HTML状态码大全(301,404,500等)

    304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。...4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 代码 说明 400 (错误请求) 服务器不理解请求的语法。 401 (未授权) 请求要求身份验证。...413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。...5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。...代码 说明 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

    2.2K60

    知识分享之规范——HTTP 状态码

    它永远不会作为真正的 HTTP 响应代码出现在状态行中,而只会出现在正文中。 226 IM 已使用 服务器已完成对资源的 GET 请求,响应是应用于当前实例的一个或多个实例操作的结果的表示。...304 未修改 指示客户端响应没有被修改,因此客户端可以继续使用相同的缓存版本的响应。 305 使用代理(已弃用) 指示请求的响应必须由代理访问。 306(未使用) 它是一个保留的状态码,不再使用。...407 需要代理身份验证 表示客户端必须首先通过代理验证自己。 408 请求超时 表示服务器在服务器分配的超时期限内没有收到来自客户端的完整请求。...413请求实体太大 请求实体大于服务器定义的限制。 414 请求 URI 太长 客户端请求的 URI 比服务器可以解释的要长。...511 需要网络身份验证 表示客户端需要进行身份验证才能获得网络访问权限。

    1.9K30

    走进 HTTP 协议 | 青训营笔记

    ,客户端缓存的资源是最新的,服务器返回此状态码表示资源未被修改,可直接使用客户端缓存的版本; 304 未修改:未 400 Bad Request:请求错误,服务器无法理解请求的格式,可能是参数错误或者缺少必要的参数...; 401 Unauthorized:未授权,请求需要用户身份验证,但是用户未提供有效的身份验证信息; 403 Forbidden:禁止访问,服务器拒绝请求,可能是权限不足或者访问资源被禁止; 403...禁止:禁止 404 Not Found:未找到,请求的资源不存在; 500 Internal Server Error:服务器内部错误,服务器遇到错误,无法完成请求; 503 Service Unavailable...HTTP请求头 客户端向服务器发送请求时,携带的附加信息 常用的HTTP请求头: Accept:指定客户端能够接收的内容类型; Accept-Encoding:指定客户端能够接受的内容编码; Accept-Language...Content-Length:指定响应体的长度,以字节为单位; 内容长度:指定 Content-Type:指定响应体的类型; 内容类型:指定 Date:指定响应的日期和时间; ETag:指定响应内容的实体标签

    10210

    HTTP和HTTPS

    1.3 请求方式 方式 描述 GET 请求指定的页面信息,并返回实体主体。...HTTP2.0支持服务端推送: 通过解析html中的资源时,在解析到引入文件时,返回所需的文件(css或者js等),而不用再发起一次请求。...2.2 特点 内容加密:采用混合加密技术,中间者无法直接查看明文内容 验证身份:通过证书认证客户端访问的是自己的服务器 保护数据完整性:防止传输的内容被中间人冒充或者篡改 三、HTTP和HTTPS的区别...需要有效长度 服务器不接受不含有效长度表头字段的请求 412 未满足前提条件 服务器未满足请求者在请求中设置的其中一个前提条件 413 请求实体过大 由于请求实体过大,服务器无法处理...服务器作为网关或代理出现错误 503 服务不可用 服务器目前无法使用 504 网关超时 网关或代理服务器,未及时获取请求 505 不支持版本 服务器不支持请求中使用的

    46711

    数据包扩展

    ,如证书不是可信机构颁布会出现警告 客户端把加密后的随机码KEY发送到服务器作为后面对称加密的秘钥 服务器在收到KEY之后会使用私钥B解密。...304 (未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 305 (使用代理)请求者只能使用代理访问请求的网页。...4xx:客户端错误 400 (错误请求)服务器不理解请求的语法。 401 (未授权)请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 403 (禁止)服务器拒绝请求。...413 (请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 (请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理。...5xx:服务器错 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施)服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

    58520
    领券