我只是想知道是否有可能获得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)