小编Ami*_*azi的帖子

如何获取AuthorizationHandler中的Controller和Action?

我只是想知道是否有可能获得and Controller?!为了能够根据请求的操作验证用户的角色,需要它。ActionAuthorizationHandler

我能够得到参考HttpContext。但似乎HttpContext.Request.RouteValues难以接近。

有人有什么想法吗?我的代码:

public class RoleHandler :
    AuthorizationHandler<RoleRequirement>
{
    private readonly IUnitOfWork _context;
    private readonly IHttpContextAccessor _httpContext;

    public RoleHandler(IHttpContextAccessor httpContext, IUnitOfWork context)
    {
        _context = context;
        _httpContext = httpContext;
    }
    protected override Task HandleRequirementAsync(
        AuthorizationHandlerContext authorizationcontext,
        RoleRequirement requirement)
    {
        var roleClaim = authorizationcontext.User.Claims
            .Where(c =>
                 c.Type == ClaimTypes.Role);

        var routeData = authorizationcontext.Resource ;


        if (ThisRoleIsAllowed(roleClaim, requirement.ActionName).Result)
            authorizationcontext.Succeed(requirement);
        return Task.CompletedTask;
    }
Run Code Online (Sandbox Code Playgroud)

c# identity httpcontext .net-core asp.net-core-3.1

2
推荐指数
1
解决办法
2266
查看次数

标签 统计

.net-core ×1

asp.net-core-3.1 ×1

c# ×1

httpcontext ×1

identity ×1