asp.net core におけるポリシー権限をPageModelごとではなく、Post毎に設定したい
質問の中におかしい部分があったらすみません。
https://docs.microsoft.com/ja-jp/aspnet/core/security/authorization/policies?view=aspnetcore-2.2
にもあるように、
[Authorize(Policy = "AtLeast21")]
public class AlcoholPurchaseController : Controller
{
public IActionResult Index() => View();
}
のようにポリシーを設定することで、アクセス制限をできると認識しています。
(現在書いているのは、RazorPagesです)
今回、あるポリシーを満たさないユーザーに対して、ページの表示はできるけど、POSTから登録はされたくないというようなことを行いたいです。
そこで、ポリシー権限をPageModelごとではなく、Post毎に設定したいのですが、できません。
[Authorize(Policy = "AtLeast21")]//ここならかける
public class EditModel : PageModel
{
public async Task<IActionResult> OnGetAsync(int? id)
{
//処理①
}
[Authorize(Policy = "AtLeast21")]//ここにかきたい
public async Task<IActionResult> OnPostAsync()
{
//処理②
}
}
ポリシーでは上記のような実装は難しいでしょうか?
処理②の中で、権限を満たすかどうかのメソッドを書くしかないでしょうか?
ご存知の方がいたら知見を頂けると嬉しいです。