ASP.NETMVCを既存のWebFormsアプリケーションに追加しています。この部分は既存のコード(フォーム認証)で処理されるため、当面は認証/ログインは気にしません。
既存のWebFormsアプリケーションでは、ページごとに完全にカスタムの権限ベースの承認があります。したがって、各ユーザーには一連の権限があり、アクセスが許可されているページが一覧表示されます。
次に、同じアクセス許可システムを使用して、特定のMVCコントローラーとアクションへのアクセスを制限する方法を決定する必要があります。
私が理解しているように、ASP.NET MVCには、役割を指定できる標準のAuthorizeAttributeがあります。また、ロールの代わりに権限を指定することを提案する記事もいくつか見つかりました。その場合、次のようなことを行うことができます。
[CustomAuthorize(Roles = "View products, Edit products")]
AuthorizeAttributeを拡張することで、アクセス許可を保存およびアクセスする方法を定義することもできます。
この解決策は私には受け入れられます(ただし、役割のセマンティクスを変更すると少し臭いがします)。
しかし、それにコミットする前に、他にどのようなオプションがあるかを確認したいと思います。そして、それは私が立ち往生しているところです-私はASP.NETMVCでの承認に関するさまざまなアプローチの本格的な概要を見つけていません。また、すべてのセキュリティ概念(フォーム認証、メンバーシッププロバイダー、承認属性、IPrincipalなど)が互いにどのように関連しているか、およびそれらがどのように連携するかについても知りたいと思います。