独自の ApplicationUser、ApplicationUserStore (IUserStore および IUserPasswordStore を実装)、および ApplicationUserManager (UserManager を拡張) を使用する単純な MVC 6 アプリケーションの作成に成功しました。ログインは完全に機能するようになりました。ここで、次のようなコントローラーで注釈をサポートするようにプロジェクトを拡張したいと考えています。
[Authorize(Roles = "TestRole")]
public IActionResult Trips()
{
...
}
したがって、独自の ApplicationRole、ApplicationRoleManager、ApplicationRoleStore も作成し、スタートアップに登録しました。
services.AddIdentity<ApplicationUser, ApplicationRole>(config =>
{
config.User.RequireUniqueEmail = true;
config.Password.RequiredLength = 8;
config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";
config.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
}).AddUserStore<ApplicationUserStore<ApplicationUser>>()
.AddRoleStore<ApplicationRoleStore<ApplicationRole>>()
.AddUserManager<ApplicationUserManager>()
.AddRoleManager<ApplicationRoleManager>();
私の問題は、注釈がまったく機能しないことです。実際、ApplicationRoleStore の Roles メソッド (IQueryableRoleStore から) が起動されることを期待していました。
拘束力のある場所を見逃していますか、それともアイデンティティ/役割の概念について完全に間違った考えを持っていますか?