我希望我的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) { }