ASP .Net Identity自定义AspNetUser主ID字段值?

我想提供自己的主要ID生成逻辑,以便可以提供“主要ID”字段的值。 我知道,可以更改类型,但是我想控制ID创建逻辑。

有什么办法可以做到这一点?

谢谢

liulei9ok 回答:ASP .Net Identity自定义AspNetUser主ID字段值?

几乎可以肯定,可以扩展UserManager来覆盖必需的功能并对此进行控制。他们提供了AddUserManager<T>()注册帮助程序,可让您在注册ASP.Net Identity时轻松提供自己的实现。

您可以在此处找到源代码:https://github.com/aspnet/AspNetCore/tree/v3.0.1/src/Identity

此外,对使用ASP.Net Identity也没有严格的identityserver4要求-如果它不能满足您的需求,则您可以自由地实现它。

,

您可以将Id的主键AspNetUser设置为No value generation,然后在创建用户时添加自定义ID值。

在您的dbcontext中:

protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        builder.Entity<ApplicationUser>().Property(u => u.Id).ValueGeneratedNever();
    }

添加迁移并更新数据库,然后您可以为主要ID生成自己的值。

,

只需覆盖ID字段

public class ApplicationUser : IdentityUser
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public override string Id
    {
        get { return base.Id; }
        set { base.Id = value; }
    }
}

var user = new ApplicationUser
{
    Id = "CustomId",UserName = "user",Email = "user@email.com"
}
本文链接:https://www.f2er.com/3059484.html

大家都在问