如何将帐户模型密码长度数据注释与成员资格提供者minRequiredPassword长度链接?

时间:2012-02-14 17:10:19

标签: asp.net-mvc asp.net-mvc-3 asp.net-membership data-annotations

使用asp.net MVC 3时,从模板安装的默认网站有AccountModel。在此范围内,密码属性有DataAnnotation个,此处MinimumLength的{​​{1}}已设置。

但是,在.NET框架成员资格提供程序中,您可以通过StringLength文件设置minRequiredPasswordLength

现在,如果您要将web.config设置为6,但将minRequiredPasswordLength AccountModel.password设置为1,那么如果您的密码仅为1,则无法注册字符的长度。相反,MinimumLength为1,而minRequiredPasswordLength为6则不允许注册。

所以对我来说这有点倒退。如果应用程序的安装不需要更长的密码长度,那么您必须在模型中更改它。

MinimumLength必须是我读过的常量值,所以有没有办法将这两者联系起来?理想情况下,我只想更改DataAnnotations中的值,而不必担心重建项目。

修改

我注意到更多Pre MVC 3工具更新后,项目模板实际上包含一个DataAnnotation,它将web.config的成员资格minRequiredPasswordLength属性链接到web.config 在此处发表了博客:http://timjames.me/mvc-3-password-length-dataannotation

1 个答案:

答案 0 :(得分:1)

简短的回答是,你不能。 DataAnnotations静态编译到程序集中,不能在运行时更改。

您可以创建一个查找长度的自定义注释,或使用远程验证来验证web.config中的值。但这不会使用标准的Length属性。