web-dev-qa-db-ja.com

ASP.NET Identity-カスタムUserManager、UserStore

UserManagerとUserStoreのカスタマイズには少し混乱しています。すぐに使用可能なソリューションにはEF実装が付属しているため、EFを使用するのではなく、MSSQLを使用する独自のDALを使用します。ユーザークレームの1つがロールになるクレームベースのセキュリティが必要です。

私が混乱しているのは、私がすべき全体的なプロセスです。私が今まで理解していないことから、私は自分で作る必要があるということです

CustomApplicationUser : IUser
CustomUserManager : UserManager<CustomApplicationUser>
CustomUserStore : IUserStore, IUserClaimStore

質問:

  1. 私はこれで正しい軌道に乗っていますか?
  2. CustomUserManagerでIsInRole()メソッドを使用したいが、クレームでそれを行う方法がわからない。デフォルトのUserManagerがUserManager.IsInRole()で呼び出すIUserRoleStore.IsInRole()があることは承知していますが、DBに別のRolesテーブルは必要ありません。私が欲しいのは、ClaimTypeの1つがRoleで、UserManager.IsInRole()がそれを使用するClaims DBテーブルです。今、私はなぜUserManager.IsInRole()メソッドが必要になるのか確信がありませんか?実際にカスタムClaimsIdentity SignInManager.CreateUserIdentityAsync()のようなものが必要になり、その中でクレームを含むすべてのユーザー情報を入力する独自の実装を呼び出しますか?

私には少し混乱しているようで、それに関する明確なドキュメントを見つけることができないようですので、誰かがそれについて少し光を当てることができれば、私は非常に感謝します!

11
dee zg

単にコピーする代わりに、次の記事を参照します。 ASP.NET Identityのカスタムストレージプロバイダーの概要

これを見てみると、ASP.NETでIDがどのように機能するかについての概要がわかります。また、アプリケーションでオーバーライドおよびカスタマイズするものを選択するのにも適しています。

8
Dawid Rutkowski