using Microsoft.AspNetCore.Authorization; using System.Threading.Tasks; namespace BuddyFinance.Admin.Filters { public class AuthorizeRequirement : IAuthorizationRequirement { public SystemUser CurrentUser { get; set; } public AuthorizeRequirement() { CurrentUser = SessionManager.Current?.CurrentUser; } } public class AuthorizeRequirementHandler : AuthorizationHandler { protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, AuthorizeRequirement requirement) { if (SessionManager.Current?.CurrentUser != null && SessionManager.Current?.CurrentUser.UserId != 0) { context.Succeed(requirement); } return Task.CompletedTask; } } }