6

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

任何人都知道如何更改 IdentityUser 类型?

我这样做了:

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

但是当我的程序启动时,我得到了这个错误:

InvalidOperationException:没有注册类型“Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]”的服务。

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

我怎样才能覆盖它?

4

2 回答 2

16

好的,所以发现了问题。_LoginPartial.cshtml 注入

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

所以你需要确保它们更新到

@inject SignInManager<MyUser>
@inject UserManager<MyUser>
于 2018-05-19T21:26:22.623 回答
1

IdentityUser你应该从你的MyUser类扩展:

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

    public string LastName { get; set; }
}

然后注册新的用户类:

services.AddIdentity<MyUser , MyRole>()

最后,在你UserManager被注入的地方,添加你自己的类型:

public HomeController(UserManager<MyUser> userManager) { }

于 2018-05-19T19:39:34.103 回答