Answer the question
In order to leave comments, you need to log in
Is it possible to make shorthand writing of .net core 3.1 filters?
Good afternoon!
I use .net core 3.1
I made a custom filter:
public class AuthorizeRoles : Attribute, IFilterFactory
{
public bool IsReusable => false;
public RoleEnum[] roles { get; set; }
public IFilterMetadata CreateInstance(IServiceProvider serviceProvider)
{
var filter = serviceProvider.GetService(typeof(RolesValidation)) as RolesValidation;
filter.roles = roles;
return filter;
}
}
[HttpPost]
[Route("[action]")]
[AuthorizeRoles(roles = new RoleEnum[] { RoleEnum.roleManagement, RoleEnum.admin })]
public async Task SetRoles([FromBody] UserAndRolesDto dto)
{
await service.SetRoles(dto.UserId, dto.Roles);
}
[AuthorizeRoles(RoleEnum.roleManagement, RoleEnum.admin )]
//или даже
[Authorize(RoleEnum.roleManagement, RoleEnum.admin )]
Answer the question
In order to leave comments, you need to log in
Through the constructor works:
public class MyTestAttribute : Attribute
{
public MyEnum[] Roles { get; set; }
public MyTestAttribute(params MyEnum[] roles)
{
Roles = roles;
}
}
[MyTest(MyEnum.One, MyEnum.Three, MyEnum.Two, MyEnum.Two)]
public void SomeMethod() { }
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question