我想提供自己的主要ID生成逻辑,以便可以提供“主要ID”字段的值。 我知道,可以更改类型,但是我想控制ID创建逻辑。
有什么办法可以做到这一点?
谢谢
我想提供自己的主要ID生成逻辑,以便可以提供“主要ID”字段的值。 我知道,可以更改类型,但是我想控制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"
}