ASP.NET Identity UserName(如何添加自己的验证)?
ASP.NET Identity UserName (how to add your own verification)?
这个属性是否默认对自己进行任何验证?像马克斯一样。长度之类的?如果有,在哪里可以找到?
我在问,因为我打算覆盖 UserName
属性 以添加更多验证。或者我应该在每个 ViewModel
?
中添加验证
您可以添加一个 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
}
}
}
我相信您实施更改的最佳方式是核心,即在模型 ApplicationUser 级别。
modelBuilder.Entity<ApplicationUser>().Property(t => t.Name).HasMaxLength(10);
通过这种方式,数据库与您的视图验证同步并且未来的控制器被正确构建。
这个属性是否默认对自己进行任何验证?像马克斯一样。长度之类的?如果有,在哪里可以找到?
我在问,因为我打算覆盖 UserName
属性 以添加更多验证。或者我应该在每个 ViewModel
?
您可以添加一个 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
}
}
}
我相信您实施更改的最佳方式是核心,即在模型 ApplicationUser 级别。
modelBuilder.Entity<ApplicationUser>().Property(t => t.Name).HasMaxLength(10);
通过这种方式,数据库与您的视图验证同步并且未来的控制器被正确构建。