簡體   English   中英

在ASP.NET Core 2.1中更改IdentityUser類型

[英]Changing IdentityUser Type in ASP.NET Core 2.1

我希望我的User有一個Guid作為主鍵,但是當我創建自己的用戶類型時,我的網站會在啟動時拋出異常。

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

我這樣做了:

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

但是當我的程序啟動時,我收到此錯誤:

InvalidOperationException:沒有注冊類型為“Microsoft.AspNetCore.Identity.UserManager`1 [Microsoft.AspNetCore.Identity.IdentityUser]”的服務。

這是否與身份UI現在位於單獨的lib並且該lib中的控制器期望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) { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM