Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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标识用户名(如何添加您自己的验证)?_C#_Asp.net_Asp.net Mvc_Asp.net Identity - Fatal编程技术网

C# ASP.NET标识用户名(如何添加您自己的验证)?

C# ASP.NET标识用户名(如何添加您自己的验证)?,c#,asp.net,asp.net-mvc,asp.net-identity,C#,Asp.net,Asp.net Mvc,Asp.net Identity,默认情况下,此属性本身是否有任何验证?比如最大长度,等等。?如果有,在哪里可以找到 我这样问是因为我打算覆盖UserName属性以添加更多验证。或者我应该在每个ViewModel中添加验证吗?您可以只添加一个模型/ViewModel来处理这个问题 public class LoginViewModel { [Required(ErrorMessage="*")] [StringLength(20, MinimumLength=5)] public string UserN

默认情况下,此属性本身是否有任何验证?比如最大长度,等等。?如果有,在哪里可以找到


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

您可以只添加一个模型/ViewModel来处理这个问题

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

    [DataType(DataType.Password)]
    public string Password { get; set; }
}
这样,在您的视图中,您可以通知用户长度等不匹配。 查看DataAnnotations

编辑 这就是你想做的吗?我还没有测试过这个代码

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

我相信,实施更改的最佳方式是在核心,即在模型应用程序用户级别

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

通过这种方式,数据库与视图验证同步,并且未来的控制器结构正确。

为什么不向模型/视图模型添加数据批注?我正在尝试这样做,但我不知道是否已经存在一些
数据批注?如果有,我想知道他们是谁,这样我就可以在
UserName
的override属性中再次添加它们。我想我将创建一个
ViewModel
,所有其他人都将从中继承自定义的
UserName
属性。我已经编辑了我的答案。但是接下来我必须将所有
DataAnnotations
复制到我为用户提供的每个
ViewModel
。如果我可以在扩展
IdentityUser
类的模型上这样做,那将是非常理想的。。。但是您必须覆盖
用户名
属性。因为一个已经存在于
IdentityUser
类中,或者
IdentityUser
继承的一些类中。但我担心的是,如果我重写该属性,一些
DataAnnotations
/验证将丢失。这就是问题所在。我不知道在默认情况下,属性
UserName
是否有一些验证/
DataAnnotations
。看起来很有希望。:)在您的案例中,
modelBuilder
是什么?dbcontext?modelBuilder是使用
Fluent API
从dbcontext派生的类的onModelCreating方法中DbModelBuilder的参数名称。您知道如何使用
DataAnnotations
,而不从父类(
IdentityUser
)中删除
DataAnnotations
)吗?只是附加你自己的?嗯。。。。编写自定义属性会有帮助吗?我不这么认为。。。因为我仍然需要覆盖基属性。我想我必须用Fluent的API来做。谢谢