User
に主キーとしてGuid
を持たせたいのですが、独自のユーザータイプを作成すると、Webサイトが起動時に例外をスローします。
IdentityUserタイプを変更する方法を知っている人はいますか?
これは私がしました:
services.AddIdentity<MyUser, MyRole>()
.AddEntityFrameworkStores<UBContext>()
.AddDefaultUI()
.AddDefaultTokenProviders();
しかし、プログラムを起動すると、次のエラーが発生します。
InvalidOperationException:タイプ 'Microsoft.AspNetCore.Identity.UserManager`1 [Microsoft.AspNetCore.Identity.IdentityUser]'のサービスが登録されていません。
これは、ID UIが別のライブラリにあり、そのライブラリのコントローラーがUserManager<IdentityUser>
を予期しているという事実と関係がありますか?
どうすればそれを上書きできますか?
わかりました、それで問題を見つけました。 _LoginPartial.cshtmlが注入します
@inject SignInManager<IdentityUser>
@inject UserManager<IdentityUser>
したがって、それらがに更新されていることを確認する必要があります
@inject SignInManager<MyUser>
@inject UserManager<MyUser>
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) { }