Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP NET 4如何使用具有MinLength属性的数据类型密码的数据批注?_C#_Asp.net_Validation_Data Annotations - Fatal编程技术网

C# ASP NET 4如何使用具有MinLength属性的数据类型密码的数据批注?

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

将StringLength属性添加到密码字段。示例-在页面底部。

应尽可能简单:

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; }