从dotnet新的webapp --auth个人-o定制IdentityUser

时间:2019-02-11 15:47:44

标签: c# asp.net-core

我正在学习C#和dotnet核心,我目前正在研究模板

    dotnet new webapp --auth Individual -o WebApp1

但是,在我不了解的幕后,它为我做了很多事情。

我正在遍历代码以查找如何创建和处理登录视图,但是还没有运气。 目前,我正在尝试向此模板中指定的数据库添加一列,如下所示:

services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlite(
                Configuration.GetConnectionString("DefaultConnection")));
        services.AddDefaultIdentity<IdentityUser>()
            .AddEntityFrameworkStores<ApplicationDbContext>();

2 个答案:

答案 0 :(得分:0)

IdentityUser是Identity的基本“用户”类,因此它被填充了,因此您不需要额外的工作。如果您不想自定义用户,那很好,但是既然您显然可以自定义,那么只需创建自己的类,该类派生自IdentityUser

public class MyUser : IdentityUser
{
    public string Foo { get; set; }
}

然后,将您的自定义用户类用作IdentityUser的类型参数:

services.AddDefaultIdentity<MyUser>()

答案 1 :(得分:0)

dotnet核心团队决定在Razor库中抽象其默认UI以进行身份​​验证,寻找依赖关系-> SDK-> Microsoft.AspNetCore.App-> Microsoft.AspNetCore.Identity.UI

查看此软件包here的代码

这应该使您了解背景实际发生了什么。

关于扩展用户模型

public class CustomUser : IdentityUser
{
     //custom properties
}

然后,您要配置身份中间件以将其识别为用户的主要模型。

services.AddDefaultIdentity<CustomUser>();

别忘了更新数据库继承,以便创建正确的表。

public class ApplicationDbContext : IdentityDbContext<CustomUser> 
{
    ...
}