C# ASP NET 4如何使用具有MinLength属性的数据类型密码的数据批注?
将StringLength属性添加到密码字段。示例-在页面底部。应尽可能简单:C# ASP NET 4如何使用具有MinLength属性的数据类型密码的数据批注?,c#,asp.net,validation,data-annotations,C#,Asp.net,Validation,Data Annotations,将StringLength属性添加到密码字段。示例-在页面底部。应尽可能简单: public class ChangePasswordObject { [Required] [DataType(DataType.EmailAddress)] string email; [Required] string authorization_code; [Required] [DataType(DataType.Password)] string pass
public class ChangePasswordObject {
[Required] [DataType(DataType.EmailAddress)]
string email;
[Required]
string authorization_code;
[Required] [DataType(DataType.Password)]
string password;
}
StringLength
的第一个参数是最大长度
现在,对于我的$0.02: 如评论中所述,在密码字段上提供最小和最大限制可以让攻击者了解您的密码要求,他们可以根据这些信息优化攻击
另外,在存储和传递明文密码时要小心——您应该尽快使用单向加密算法和随机salt对它们进行salt+哈希运算。验证密码时,应使用已知的salt并比较结果散列,对用户输入重复加密。如果您使用明文密码比发布密码做的更多,您可能需要重新考虑您的安全策略。将总数放在一边,但a)请不要为密码设置最大长度(至少不要设置低于100个字符的密码),b)根本不要存储密码!你必须对此加以驳斥,否则你就太粗心了。@GeorgeMauer:我绝对同意你的建议,可能会更新我的答案,增加一些额外的提示。
[Required]
[DataType(DataType.Password)]
[StringLength(20, MinimumLength = 3)]
string password;
[MembershipPasswordAttribute(MinRequiredNonAlphanumericCharacters = 4, MinRequiredPasswordLength = 7, MinNonAlphanumericCharactersError = "Alpha", MinPasswordLengthError = "MIN Length")]
[DataType(DataType.Password)]
public string Password { get; set; }
[System.ComponentModel.DataAnnotations.Compare("Password",ErrorMessage ="{0} and {1} should be same")]
public string ComparePassword { get; set; }