asp.net核心web场,在redis中具有分布式会话处理

wpcxdonn  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(549)

我正在尝试创建一个web场,其中包含多个docker容器,所有这些容器都运行相同的asp.net core 3.1应用程序。因此,我需要管理一个分布式会话,我的想法是使用redis来做到这一点。
根据这篇文章,我在我的报告中增加了以下陈述 ConfigureServices 方法:

var redis = ConnectionMultiplexer.Connect(redis_connection_string);
services.AddDataProtection()
  .PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys")
  .SetApplicationName("seminarmanager");

services.AddStackExchangeRedisCache(o =>
{
  o.Configuration = redis_connection_string;
  o.InstanceName = "seminarmanager";
});

当然,我在我的应用程序中添加了两个来自nuget的包:
Microsoft.AspNetCore.DataProtection.StackExchangeRedis Microsoft.Extensions.Caching.StackExchangeRedis 不幸的是,分布式会话处理不起作用,我遇到了如下一系列错误:
system.security.cryptography.cryptographyException:在密钥环中找不到密钥{9b51134a-a57a-4129-9441-72859a985ab0}。
位于microsoft.aspnetcore.dataprotection.keymanagement.keyringbaseddataprotector.unprotectcore(byte[]protecteddata,boolean allowoperationsonrevokedkeys,unprotectstatus&status)
位于microsoft.aspnetcore.dataprotection.keymanagement.keyringbaseddataprotector.dangerousunprotect(byte[]protecteddata,boolean ignorerevocationerrors,boolean&requiresmigation,boolean&wasrecaded)
位于microsoft.aspnetcore.dataprotection.keymanagement.keyringbaseddataprotector.unprotect(byte[]protecteddata)
位于microsoft.aspnetcore.session.cookieprotection.unprotect(idataprotector保护程序、字符串保护文本、ilogger记录器)
microsoft.aspnetcore.session.sessionmiddleware:警告:取消保护会话cookie时出错。
在redis中,创建了密钥“dataprotection keys”,但没有值。
如何使用redis成功配置分布式会话/密钥管理?
致以最诚挚的问候。。。

eiee3dmh

eiee3dmh1#

我自己找到了答案。我不得不从浏览器中删除所有现有的localhost cookies。在那之后,一切顺利。

相关问题