Я создал пользовательский атрибут, но я хочу иметь возможность передавать ему именованные аргументы.
Вот атрибут ниже.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class AnyAuthorizeAttribute : TypeFilterAttribute
{
public string Roles { get; set; }
public AnyAuthorizeAttribute()
: base(typeof(AnyAuthorizeFilter))
{
var roles = !string.IsNullOrEmpty(Roles) ? Roles.Split(", ") : new string[0];
Arguments = new[] { roles };
}
}
[HttpGet("roles/{id:int}", Name = "GetRole")]
[AnyAuthorize(Roles = "Administrator, Super User")]
public IActionResult Get(int id)
{
try
{
if (!_unitOfWork.Roles.Exists(id))
{
return BadRequest("No role exists with the id supplied");
}
Все выглядит хорошо для меня , но каждый раз, когда я запускаю его, свойство Roles равно нулю. Любые обычные параметры, которые я использую с атрибутом, выглядят нормально.
Я использую это в asp. net ядро 2.2
Чего мне не хватает?