.net core MVC 集群DataProtection

.net core 分布式部署时,不使用Session,使用Redis+Cookie存储数据,

但是会涉及到DataProtection的使用;

解决方法使用DataProtection到持续化到Redis中;

Redis 不能使用Microsoft.Extensions.Caching.Redis 包,会有包冲突,使用 Microsoft.Extensions.Caching.StackExchangeRedis

然后使用
Microsoft.AspNetCore.DataProtection.StackExchangeRedis包

 然后在 ConfigureServices 方法中进行如下配置

#region DataProtection
//设置应用程序唯一标识
var redis =StackExchange.Redis.ConnectionMultiplexer.Connect(Configuration["Redis:Server"]);
services.AddDataProtection().SetApplicationName("APPIdentityName")
.PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys");
#endregion

#region Redis配置
services.AddSingleton<StackExchange.Redis.IConnectionMultiplexer>(StackExchange.Redis.ConnectionMultiplexer.Connect(Configuration["Redis:Server"]));
services.AddStackExchangeRedisCache(options => {
options.Configuration = Configuration["Redis:Server"]; //数据库配置的Redis连接字符串
options.InstanceName = Configuration["Redis:InstanceName"];//Redis实例名称
});
#endregion

原文地址:https://www.cnblogs.com/ruiying/p/13164484.html