验证是应用程序设置的一部分

时间:2010-08-30 16:19:27

标签: asp.net-mvc validation enterprise-library validation-application-bl

我正在寻找使用Validation Application Block进行基于配置验证的示例。我找到了this

我想问一下是否有人使用EL VAB 5.0来实现基于配置的验证的替代解决方案。我从DataAnnotations开始,但很快发现某些属性需要不同类型的验证,具体取决于谁在使用该应用程序。

此外,如果有人有更多VAB配置示例以及我可能遇到的任何建议,请分享。

1 个答案:

答案 0 :(得分:0)

您可以通过几条路径来实现这一目标。首先,你可以(ab)使用规则集。您可以创建一个“基础”规则集,其中包含适用于每个人的规则,您可以在系统中为每个角色制定规则集,甚至可以为每个用户制定规则集,但这当然很麻烦。

另一种选择是创建一个IConfigurationSource实现,该实现能够根据登录用户返回ValidationSettings实例。现在有几种方法可以构建ValidationSettings对象。以下是一些例子:

  1. 您可以根据角色使用FileConfigurationSource从磁盘加载多个配置文件。类似于:return (new FileConfigurationSource('validation_' + role + '.config')).GetSection(sectionName);
  2. 您可以动态构建ValidationSettings个实例(并缓存它们)。您可以将此定义存储在数据库中并加载它们(这将是很多工作)或在代码中定义它们(可能由程序集分隔)。 Here is an example基于代码的配置。
  3. 另外,为了防止必须复制部分配置,您可以执行以下操作:

    1. 将多个配置合并在一起。例如,您可以将基线验证与角色特定验证合并。这使您不必根据基线手动验证,并对角色特定验证进行第二次验证。虽然不支持开箱即用,但我在博客here上写了关于如何执行此操作的信息。
    2. 您可以根据类型继承合并规则。虽然VAB仅支持基于属性的验证的验证器继承,但我在我的博客here上写过这个。
    3. 我希望这会有所帮助。