migration
All checks were successful
All checks were successful
This commit is contained in:
30
SimpleToolkit.Attributes/RequiresClaimAttribute.cs
Normal file
30
SimpleToolkit.Attributes/RequiresClaimAttribute.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user