asp.net-core - 如何将 UserManager 与自定义用户一起使用?
问题描述
我创建了继承的自定义用户类IdentityUser<int>
。
[Table("Users", Schema = "UserData")]
public class User : IdentityUser<int>
{
/// <summary>
/// Property for sake of creating One-to-One relationship UserDetails -> User
/// </summary>
[Required]
public UserDetails UserDetails { get; set; }
}
public class BlogDbContext : IdentityDbContext<User, IdentityRole<int>, int>
{
public BlogDbContext(DbContextOptions<BlogDbContext> options)
: base(options) {}
protected override void OnModelCreating(ModelBuilder builder)
{
builder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
//UserDataConfig
builder.ApplyConfiguration(new UserConfiguration());
builder.ApplyConfiguration(new UserDetailsConfiguration());
//UserData
builder.Entity<Location>()
.HasOne<UserDetails>(s => s.UserDetails)
.WithOne(g => g.Location)
.HasForeignKey<UserDetails>(ad => ad.LocationId);
builder.Entity<User>()
.HasOne<UserDetails>(s => s.UserDetails)
.WithOne(g => g.User)
.HasForeignKey<UserDetails>(ad => ad.UserId);
base.OnModelCreating(builder);
}
//UserData
public DbSet<User> Users { get; set; }
public DbSet<UserDetails> UserDetails { get; set; }
}
}
现在我正在尝试创建以下字段
private UserManager<User, int> _userManager;
我的错误:
类型“ApplicationCore.DataModel.UserData.User”不能用作泛型类型或方法“UserManager<TUser, TKey>”中的类型参数“TUser”
我该如何解决?感谢您的关注。
解决方案
将 User 替换为 IdentityUser 并将 Role 替换为 IdentityRole 并且工作正常。像
public class DataContext : IdentityDbContext<IdentityUser,IdentityRole, string, IdentityUserClaim<string>, IdentityUserRole<string>,
IdentityUserLogin<string>, IdentityRoleClaim<string>,IdentityUserToken<string>>
或使用:-
public class ApplicationUser : IdentityUser<int>
{
}
public class ApplicationRole : IdentityRole<int>
{
}
public class BlogDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{
}
它将解决您的问题。
推荐阅读
- apache-kafka - Apache Kafka 6.0 中的 Kerberos 身份验证 (GSSAPI) 使用 Pre windows 2000 名称格式
- variables - 无法在 JSRender 循环中设置和访问动态变量
- python - 缓冲区溢出漏洞只能使用 pwntools
- linux - 从汇编中的 linux 终端获取 args[1]
- python - 在我的 conda 环境中导入 matplotlib 时出现 ImportError:无法从“PIL”导入名称“_imaging”
- python - 在numpy中查找最大值的索引排除零值
- node.js - Heroku 日志:服务暂时不可用。请稍后再试
- machine-learning - 机器学习中的无监督分类
- java - 多次调用时,Android PhoneStateListener 的行为是什么?
- python - 数组的向量化索引