Я хочу сохранить свои учетные данные в кэше Redis для аутентификации.Для этого я создал фильтр.Но я не смог использовать (внедрить) IDistributedCache в фильтре.
public class Authorization : AuthorizeAttribute,IAuthorizationFilter
{
IDistributedCache distributedCache;
public void OnAuthorization(AuthorizationFilterContext filterContext)
{
//Authentication
bool skipAuthorization = filterContext.Filters.Any(item => item is IAllowAnonymousFilter);
if (skipAuthorization)
{
return;
}
try
{
string token = distributedCache.GetString("TokenValue");
if (token == null)
{
// unauthorized!
filterContext.Result = new UnauthorizedResult();
}
}
catch (InvalidOperationException)
{
filterContext.Result = new UnauthorizedResult();
}
}
}
Если я сгенерирую конструктор для вышеупомянутого класса и введу IDistributedCache в конструкторе, то при использовании этого фильтра я получу ошибку
Так есть ли другой способ использовать кэш redis в фильтрах?