在核心 2.1 ASP.NET 更改身份用户类型



我希望我的User有一个Guid作为主键,但是当我创建自己的用户类型时,我的网站在启动时抛出异常。

有人知道如何更改身份用户类型吗?

我这样做了:

services.AddIdentity<MyUser, MyRole>()
.AddEntityFrameworkStores<UBContext>()
.AddDefaultUI()
.AddDefaultTokenProviders();

但是当我的程序启动时,我收到此错误:

无效操作异常: 没有类型的服务 'Microsoft.AspNetCore.Identity.UserManager'1[Microsoft.AspNetCore.Identity.IdentityUser]' 已注册。

这是否与身份 UI 现在位于单独的库中并且该库中的控制器期待UserManager<IdentityUser>有关?

我怎样才能覆盖它?

好的,所以找到了问题。 _LoginPartial.cshtml 注入

@inject SignInManager<IdentityUser>
@inject UserManager<IdentityUser>

因此,您需要确保它们已更新为

@inject SignInManager<MyUser>
@inject UserManager<MyUser>

您应该从MyUser类扩展IdentityUser

public class MyUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
}

然后注册新的用户类:

services.AddIdentity<MyUser , MyRole>()

最后,在注入UserManager的位置,添加您自己的类型:

public HomeController(UserManager<MyUser> userManager) { }

最新更新