質問の中におかしい部分があったらすみません。

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()
    {
          //処理②
    }
}

ポリシーでは上記のような実装は難しいでしょうか?
処理②の中で、権限を満たすかどうかのメソッドを書くしかないでしょうか?

ご存知の方がいたら知見を頂けると嬉しいです。