Files
MSEssentials.AspNetCore.Att…/SimpleToolkit.Attributes/RequiresClaimAttribute.cs
Mateusz Skoczek 0cfd932b50
All checks were successful
Build and publish package / Build (push) Successful in 27s
Build and publish package / Determine version (push) Successful in 16s
Build and publish package / Pack (push) Successful in 26s
Build and publish package / Publish (push) Successful in 12s
migration
2026-02-15 14:15:28 +01:00

31 lines
833 B
C#

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();
}
}
}
}