Files
MSEssentials.AspNetCore.Att…/SimpleToolkit.Attributes/RequiresClaimAttribute.cs

31 lines
833 B
C#
Raw Normal View History

2026-02-15 14:15:28 +01:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
namespace SimpleToolkit.Attributes
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class RequiresClaimAttribute : Attribute, IAuthorizationFilter
{
private readonly Predicate<Claim> _predicate;
public RequiresClaimAttribute(Predicate<Claim> predicate)
{
_predicate = predicate;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
if (!context.HttpContext.User.HasClaim(_predicate))
{
context.Result = new ForbidResult();
}
}
}
}