首页 / 问答 / .NET Core应用程序如何在AuthrizationHandler实例中获取请求参数?

.NET Core应用程序如何在AuthrizationHandler实例中获取请求参数?

0

在.NET Core应用程序编程开发中,自定义了一个基于AuthorizationHandler的权限验证类,现在需要在这个类中获取来自当前请求上下文控制器中的参数,在ASP.NET MVC中我们可以使用如下的方式获取:

var eventId = filterContext.RequestContext.HttpContext.Request.Params["id"];

但在.NET Core应用程序中这种方式好像不可用了。

那么,在.NET Core应用程序中,如何AuthrizationHandler实例中获取请求参数呢?

权限验证类如下:

public class HasAdminRoleFromAnySiteRequirement : AuthorizationHandler<HasAdminRoleFromAnySiteRequirement>, IAuthorizationRequirement
{

    public HasAdminRoleFromAnySiteRequirement()
    {

    }
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,
        HasAdminRoleFromAnySiteRequirement requirement)
    {

        // 这里需要从控制器中获取参数,比如
        // var eventId = filterContext.RequestContext.HttpContext.Request.Params["id"];

        return Task.FromResult(0);
    }
}
回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    在.NET Core 3.0开启终端路由的情况下,可以使用如下的方式获取请求上下文中的参数:

    Rector的个人主页

    Rector

    2020-01-19 回答

    • 0

      HasAdminRoleFromAnySiteRequirement授权过滤器上下文的处理器中,可以使用命名空间Microsoft.AspNetCore.Mvc.Filters中的AuthorizationFilterContext类来获取上下文的实例,然后通过这个实例访问参数,如下:

      Rector的个人主页

      Rector

      2020-01-19 回答

      • 0

        在.NET Core 2.2的应用程序中,你可以使用如下的方式获取请求上下文中的参数:

        Rector的个人主页

        Rector

        2020-01-19 回答

        我来回答