Asp.net core 如何在asp.net core RazorPages中实现处理程序级授权
PageModel的Authorize属性不够,因为它适用于该PageModel中的所有处理程序。 我正在寻找一些自定义授权,比如“只有在18岁以上时才能访问”,那么如何在RazorPages(而不是MVC)中实现相同的授权呢?Asp.net core 如何在asp.net core RazorPages中实现处理程序级授权,asp.net-core,authorization,razor-pages,Asp.net Core,Authorization,Razor Pages,PageModel的Authorize属性不够,因为它适用于该PageModel中的所有处理程序。 我正在寻找一些自定义授权,比如“只有在18岁以上时才能访问”,那么如何在RazorPages(而不是MVC)中实现相同的授权呢? 是否有任何简洁明了的解决方案???目前无法在单个Razor页面处理程序上使用Authorize属性,您可以在中跟踪功能请求 作为一种解决方法,您可以注入IAuthorizationService并手动实现授权: private readonly IAuthorizati
是否有任何简洁明了的解决方案???目前无法在单个Razor页面处理程序上使用
Authorize
属性,您可以在中跟踪功能请求
作为一种解决方法,您可以注入IAuthorizationService
并手动实现授权:
private readonly IAuthorizationService _authorizationService;
public IndexModel(ILogger<PrivacyModel> logger, IAuthorizationService authorizationService)
{
_logger = logger;
_authorizationService = authorizationService;
}
public async Task OnGet()
{
var isAuthorized = await _authorizationService.AuthorizeAsync(
User, "PolicyName");
if (!isAuthorized.Succeeded)
{
//not pass the authorzation
}
}
private readonly iaauthorizationservice\u authorizationService;
公共索引模型(ILogger记录器、IAuthorizationService授权服务)
{
_记录器=记录器;
_授权服务=授权服务;
}
公共异步任务OnGet()
{
var isAuthorized=await\u authorizationService.authorizationAsync(
用户,“保单名称”);
如果(!isAuthorized.Successed)
{
//未通过授权
}
}
并创建策略以检查值用户的年龄声明是否超过18岁,如图所示。我有一个按钮或处理程序,用户只有在18岁时才能访问该按钮或处理程序+