发布时,以下代码可以正常工作,直到达到$out
方法为止。没有数据保存到数据库。
_userManager.CreateAsync
答案 0 :(得分:1)
您似乎不是直接使用IdentityUser
类,而是使用AppUser
类。这可能是扩展IdentityUser<>
或IdentityUser
的类。我不确定您是否有剩余的设置权限,因此过程如下:
如果您已经创建了一个自定义AppUser
类,那么可以说您是按照以下方式创建的:
class AppUser : IdentityUser<int>
这意味着您已经像int
中那样分配了主键。但是,如果您扩展了IdentityUser
,请注意IdentityUser
扩展了IdentityUser<string>
,这意味着您的密钥是字符串。继续,我要假设您的密钥是int
。如果没有,您可以进行相应的更改(将所有int
更改为您的密钥类型。
在启动类中,您需要添加以下内容,以将其注册为用于Identity的用户类
services.AddIdentity<AppUser, IdentityRole<int>>()
.AddEntityFrameworkStores<ApplicationDbContext>();
您的ApplicationDbContext
需要定义如下:
public class ApplicationDbContext : IdentityDbContext<AppUser, IdentityRole<int>, int>
如果您不想在以上两段代码中使用IdentityRole<int>
,则可以如下定义自定义角色类:
public AppUserRole : IdentityRole<int>
设置完成后,您需要注入UserManager<AppUser>
而不是UserManager<IdentityUser>
。
答案 1 :(得分:0)
我在依赖注入中使用了IdentityUser,而我要做的就是将IdentityUser更改为AppUser。
Startup.cs
services.AddIdentity<AppUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();