. NET CORE 3.1
Я получил ответ о том, как выйти из системы всех клиентов с Identity Server.
Я работаю на этом примере (глава) РЕВОКАЦИЯ.
Но теперь у меня появилась новая проблема. В событии OnSignedIn я хочу добавить идентификатор пользователя в Redis Cache, но я не знаю, как.
Это плохая практика:
var sp = services.BuildServiceProvider();
var cache = sp.GetService<IDistributedCache>();
cache.SetString("helloFromRedis", "world");
var valueFromRedis = cache.GetString("helloFromRedis");
Console.WriteLine(valueFromRedis);
My Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddStackExchangeRedisCache(options =>
{
options.Configuration = RedisString;
});
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies", options =>
{
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(10);
options.SlidingExpiration = true;
options.Events.OnSignedIn(a => {
// there I want to resolve cache and put userId from claims.
});
})
.AddOpenIdConnect("oidc", options =>
{
//...
});
}
Как мне разрешить кэш Redis?