【问题标题】:Authorize Tag Helper in Razor Pages for page handler method在 Razor Pages 中为页面处理程序方法授权 Tag Helper
【发布时间】:2018-10-18 11:56:44
【问题描述】:

我有一个 Razor Pages 应用程序,我在其中使用基于声明的授权。在我的代码中,我使用[Authorize] 标签来识别用户可以访问哪些方法。它适用于我的课程,但不适用于我的个人页面处理程序。

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

我的代码如下所示:

[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
    }
}

提前致谢!

【问题讨论】:

    标签: c# asp.net claims-based-identity razor-pages


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 2020-10-18
      • 2021-07-27
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多