如何使用ASP.NET MVC验证电子邮件地址并在DB中加密存储

时间:2016-11-24 15:46:59

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

我想验证在客户端的ASP.NET MVC项目中输入的电子邮件地址。然后我想以加密形式将这些文件保存到数据库中。

我尝试使用

[EmailAddress(ErrorMessage = "Invalid Email Address")]

由于在将数据存储到构造函数的数据库中之前对此数据进行了加密,因此问题变得复杂:

Email = Encrypt(email);

现在我有一个问题,大概是因为数据库中加密的电子邮件地址不再有效。

我尝试验证解密版本:

    [EmailAddress(ErrorMessage = "Invalid Email Address")]
    public string DecryptedEmail
    {
        get
        {
            return Decrypt(Email);
        }
    }

我在视图屏幕上更改了它:

@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.DecryptedEmail, "", new { @class = "text-danger" })

执行db.SaveChanges()时会导致异常:

{"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."}

检查EntityValidationErrors,我可以看到我的错误消息:

Invalid Email Address

有没有办法让这个方法完全适用于输入?

0 个答案:

没有答案