在 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
获取所选处理程序方法的名称。然后你可以根据那个做你的授权检查。
我有一个 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
获取所选处理程序方法的名称。然后你可以根据那个做你的授权检查。