.NET Framework 4.8 dependency inject custom AuthorizeAttribute attribute for controller

340 Views Asked by At

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.

0

There are 0 best solutions below