Beispiel #1
0
        protected override Task HandleRequirementAsync(
            AuthorizationHandlerContext context, MustBeOwnerOfTask requirement)
        {
            var filterContext = context.Resource as AuthorizationFilterContext;

            if (filterContext == null)
            {
                context.Fail();
                return(Task.FromResult(0));
            }

            var taskId = Guid.Parse(filterContext.RouteData.Values["id"].ToString());
            var userId = Guid.Parse(context.User.Claims.FirstOrDefault(x => x.Type == "sub")?.Value);

            if (!TaskRepository.IsOwnerOfTask(taskId, userId))
            {
                context.Fail();
                return(Task.FromResult(0));
            }

            context.Succeed(requirement);
            return(Task.FromResult(0));
        }