I have a custom attribute for validating JWT, and I'm trying to use DI so I can inject a service to verify other info in the database.
Using DI all I get is that there are no parameters for the constructor
public class JwtAuthenticationAttribute : : AuthorizeAttribute, IAuthenticationFilter
{
private static readonly IJwtManager jwtManager = ServiceLocator.GetService<IJwtManager>();
public string Realm { get; set; }
public new bool AllowMultiple => false;
public ResourceEnum Resource { get; set; }
public ResourceEnum[] ResourceArray { get; set; }
public PermissionEnum Permission { get; set; }
public PermissionEnum[] PermissionArray { get; set; }
private readonly ISecurityPermissionService securityPermissionService;
public JwtAuthenticationAttribute(ISecurityPermissionService _securityPermissionService)
{
securityPermissionService = _securityPermissionService;
}
[(JwtAuthenticationAttribute)]
Public async Task<List<someData>>
}
We are using structure map for DI
For <ISecurityPermissionService>().Use<SecurityPermissionService>().Transient();
// JwtAuthenticationAttribute : AuthorizeAttribute, IAuthenticationFilter
For<IAuthenticationFilter>().Use<Services.Filter.JwtAuthenticationAttribute>().Singleton();
I'm hoping for the ISecurityPermissionService securityPermissionService; to be properly injected.