【问题标题】:asp.net membership how to restrict password property while creating new user/changing password?asp.net 成员资格如何在创建新用户/更改密码时限制密码属性?
【发布时间】:2012-01-10 06:00:03
【问题描述】:

我想用下面提到的属性限制密码强度:: 密码强度:

  • 1.包含以下四个类别中的三个:

英文大写字符(A 到 Z)
英文小写字符(a 到 z)
以 10 位为基数(0 到 9)
非字母字符(例如,!、$、#、%)

  • 2.密码不包含用户的账户名


我可以通过在会员部分下的 web.config 文件中向 PasswordStrengthRegularExpression 属性提供正则表达式来轻松实现第一个条件
但问题在于第二个条件(密码不包含用户的帐户名)我应该怎么做做到这一点。

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-membership


【解决方案1】:

检查我在以下帖子中链接到的页面。

基本上,您编写自己的Dataannotation,因此您应该能够修改它以查看密码是否包含用户名而不是等于用户名。

Opposite of [compare(" ")] data annotation in .net?

我刚刚意识到你也发布了这个问题。

因此,您应该将博文中的类名更改为“CanNotContainAttribute”之类的名称 然后也改成同名的构造函数。

在 IsValid 方法中,你应该检查一个字符串是否包含另一个字符串,即 Password 是否包含 Username,如果注解应用于模型文件中的密码属性,则 Username 在这里称为 OtherProperty。

然后您将注释应用到 Password 属性:

[CanNotContain("UserName")]
public string Password { get; set; }

我参考的原博文是:http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2

【讨论】:

  • 我应该在哪里使用该验证。即在哪个属性上??
  • 你的代码如果不使用 ASP .NET Membership/但我正在使用它,我会工作。所以这样做没有任何结果。
  • 好吧,也许其他人可以给你一个很好的答案。我的想法是,也许您可​​以创建一个自定义会员提供程序并在那里实现您想要的功能。看看:[link]codeproject.com/KB/aspnet/CustomMembershipProviders.aspx[/link] 或谷歌“自定义会员提供商 asp.net”
猜你喜欢
  • 2011-11-21
  • 1970-01-01
  • 2011-09-08
  • 2013-12-27
  • 2011-03-02
  • 1970-01-01
  • 2012-09-27
  • 2017-03-31
  • 1970-01-01
相关资源
最近更新 更多