使用哈希进行ASP.NET MVC密码验证

时间:2014-11-14 06:55:52

标签: asp.net asp.net-mvc entity-framework validation hash

所以我想将自定义哈希添加到我的密码中,但由于我自己的验证而被卡住了

我的模特:

public class ms_user
{
    [Required(ErrorMessage = "Please Input your Login Email")]
    [DataType(DataType.EmailAddress)]
    public object user_id { get; set; }

    [Required(ErrorMessage = "Please Input your Password")]
    // Validation at least 1 uppercase & 1 number, password lenght must be greater then 6 and lower then 12, with no Special Character
    [RegularExpression(@"^(?=.*\d)(?=.*[A-Z])[a-zA-Z0-9](.{6,12})$", ErrorMessage = "Error, Wrong Password Format")] 
    public object password { get; set; }
}

样品:

密码输入: Admin123 //通过验证

HashedPassword输出: l92Vi3c2Af7Oftgy7JqYJKR8isYXef8pIOqvMzjrN6rnRct6W6UuDzv0YRCOudPPXnC69Gj2J4igXZWH1WRz9C19abN4UWKSqX8d0TxA + 0IvXJAvzoksaEWPQm56gy /升:9KZQeh3nB9apjy81V / FvfU // i之后散列我的密码,

我的项目通过了密码验证,但是在db.SaveChanges()上;它返回错误,因为密码验证

有什么解决方案吗?我不想添加javascript验证...

THX

2 个答案:

答案 0 :(得分:0)

将“密码”数据类型列更改为“用户”表中的nvarchar(MAX),以容纳“哈希密码”。

答案 1 :(得分:0)

我遇到了同样的问题,因为我将数据库中的密码长度更新为nvarchar(max),但之后没有在visual studio中更新模型。所以更新模型,它应该解决这个问题。