Я хочу получить доступ к IDistributedCache в пользовательском классе, а не только в контроллере. Возможно ли это?
Да.
Зарегистрируйтесь в коллекции служб
var redisconnection = "...";
services.AddDistributedRedisCache(o => { o.Configuration = redisconnection; });
services.AddScoped<MyCustomClass>();
//...
и получите ее в качестве аргумента для ввода в пользовательском классе
public MyCustomClass(IDistributedCache cache) {
//...
}