ASP.NET Identityから少し離れて、アプリケーションのカスタム認証/承認システムを構築しているとしましょう。
完全な柔軟性のために、次の表が含まれます:
ユーザー
役割
許可
UserRoles
RolePermissions
上記を使用して、アプリケーションの本格的なユーザー管理セクションを作成できます。このセクションでは、管理者は、ユーザーAがロールBにアクセス権C、D、Fを持っていると言うことができます。
上記は以前から常に機能していましたが、ASP.NET Identityを使用してASP.NET Core MVCアプリケーションにギアを切り替えることができます。
MicrosoftがUserManagerでASP.NET Core Identityを使用して提供するすべてのものを利用しようとしていますが、ASP.NET Core Identity MVCの方法で、上記のことを引き続き実現したいと考えています。
知っていること:
UserManagerを使用して、ユーザーとロールおよびユーザーロールのCRUDページを簡単に実装できること。
私が理解しようとしていること:
「ロールが持つ権限/アクション」と同じ動作をどのように再現できますか?概念。
これに対する私の最初の推測では、ロールと組み合わせてクレームを使用することになります。クレームはロール、つまりRoleClaimsに割り当てられ、次にロールはユーザーに割り当てられます。
このようにして、Authorizeタグを使用してControllers/Actionメソッドの上のロールを簡単に確認できます。さらに、ユーザーのロールに "DeleteProduct"のクレームがない場合は、ページレベルでさらに「削除ボタンを非表示/表示」と言って、このような ビューベースの承認ドキュメント と言っています。
-
私はこれで正しい道を進んでいるかどうかを理解しようとしています。アドバイスや修正があれば役に立ちます。
この人はあなたの特定の問題に対して潜在的な解決策を持っているようです。
ASP.NET Core Identity 3を使用したユーザーロールのアクセス許可
クレームとポリシーの詳細
https://docs.Microsoft.com/en-us/aspnet/core/security/authorization/claims
基本的に
注:ASP.Net Core 2で動作するかどうか、または使用しているバージョンは完全にはわかりません。