Files
piaps_kursach/SoftwareApplication/SoftwareRestApi/RoleFilterAttribute.cs

29 lines
670 B
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using SoftwareContracts.ViewModels;
using SoftwareDateModels.Enums;
namespace SoftwareRestApi
{
public class RoleFilterAttribute : Attribute, IActionFilter
{
private readonly UserRole _requiredRole;
public RoleFilterAttribute(UserRole role)
{
_requiredRole = role;
}
public void OnActionExecuting(ActionExecutingContext context)
{
var user = context.HttpContext.Items["User"] as UserViewModel;
if (user == null || user.Role != _requiredRole)
{
context.Result = new ForbidResult();
}
}
public void OnActionExecuted(ActionExecutedContext context) { }
}
}