在 Razor Pages 中为页面处理程序方法授权 Tag Helper

Authorize Tag Helper in Razor Pages for page handler method

我有一个 Razor Pages 应用程序,我在其中使用基于声明的授权。在我的代码中,我使用 [Authorize] 标记来识别用户能够访问哪些方法。它对我的 class 工作得很好,但对我的个人页面处理程序不起作用。

经过一些研究,页面处理程序似乎不支持它。有人知道解决方法吗?

我的代码看起来像这样:

[Authorize(Policy = "ListItems")]
public class LicensesModel : PageModel
{ 
    // Only user with the "ListItems" Claim can open this page
    public void OnGet()
    {
         ...
    }

    [Authorize(Policy = "DownloadItem")]
    public IActionResult OnPostDownload(string id)
    {
         // This method can always be accessed, but shouldn't
    }
}

提前致谢!

这看起来像是自定义全局过滤器的候选对象:https://www.learnrazorpages.com/razor-pages/filters

您将创建一个在选择处理程序时执行的方法,然后使用 context.HandlerMethod.MethodInfo.Name 获取所选处理程序方法的名称。然后你可以根据那个做你的授权检查。