Рекомендованным способом является использование авторизации на основе политик, вы можете нажать здесь для аналогичного обсуждения.
Вы можете использовать пользовательский фильтр авторизации для удовлетворения ваших требований, если вы просто проверите, есть ли претензия Тип существует в заявках пользователя, вы можете попробовать ниже пример кода:
ClaimRequirementFilter.cs:
public class ClaimRequirementFilter : IAuthorizationFilter
{
readonly Claim _claim;
public ClaimRequirementFilter(Claim claim)
{
_claim = claim;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
var hasClaim = context.HttpContext.User.Claims.Any(c => c.Type == _claim.Type);
if (!hasClaim)
{
context.Result = new ForbidResult();
}
}
}
ClaimRequirementAttribute.cs:
public class ClaimRequirementAttribute : TypeFilterAttribute
{
public ClaimRequirementAttribute(string claimType ) : base(typeof(ClaimRequirementFilter))
{
Arguments = new object[] { new Claim(claimType , "") };
}
}
И использовать как:
[ClaimRequirement("key")]
Если вам также необходимо ограничить стоимость заявки, вы можете воспользоваться примером кода из над ссылкой .