ASP.NET Identity UserName(如何添加自己的验证)?

时间:2015-07-06 11:31:51

标签: c# asp.net asp.net-mvc asp.net-identity

默认情况下,此属性是否有自己的验证?像Max一样。长度等?如果是的话,它在哪里可以找到?

我问,因为我打算覆盖UserName属性以添加更多验证。或者我应该在每个ViewModel添加验证吗?

2 个答案:

答案 0 :(得分:1)

你可以添加一个Model / ViewModel来为你处理这个问题。

public class LoginViewModel
{
    [Required(ErrorMessage="*")]
    [StringLength(20, MinimumLength=5)]
    public string UserName { get; set; }

    [DataType(DataType.Password)]
    public string Password { get; set; }
}

这样,在您的视图中,您可以通知用户长度等不匹配。 查看DataAnnotations here

修改 这是你想要做的吗?我还没有测试过这段代码!

public class ApplicationUser : IdentityUser
{
    public string UserName
    { 
        get; 
        set
        {
            //your validation here
        } 
    }
}

答案 1 :(得分:1)

我相信您执行更改的最佳方式是核心,即在ApplicationUser模型级别。

modelBuilder.Entity<ApplicationUser>().Property(t => t.Name).HasMaxLength(10);

这样,数据库与您的视图验证同步,未来的控制器都是正确的脚手架。