我遇到了微风验证的问题。
这个特定问题的根本原因似乎很可能是由于微风中的设计缺陷造成的。具体来说,验证错误不会被分配由其验证器生成的验证消息的副本。相反,每次使用最后提供给验证器的上下文来生成消息。
在您意识到从同一个验证器生成的验证器错误都共享对同一个验证器实例的引用并且该验证器实例使用提供给它的最后一个上下文来形成验证消息之前,这不会成为问题。
上面的结果可能最好用以下场景来解释:
- 您有多个相同实体的实例绑定到一个页面
- 两个实体实例都违反了由 SAME 验证器实例定义的规则
- 对于每个实体实例,使用不同的上下文值
- 为 BOTH 验证错误生成的两条错误消息由提供给验证器的最后一个上下文确定
- 因此,第一个验证错误的消息使用为第二个提供的上下文
就像我说的,我认为这是一个设计缺陷,但很高兴解释为什么不是这种情况,以及避免上述情况的替代方法,感觉不像是黑客攻击。
谢谢