IGeekFan.AspNetCore.DataProtection.FreeRedis
包定位
将 ASP.NET Core Data Protection 密钥持久化到 Redis,适合多实例部署场景,避免节点间加解密不一致。
典型场景
- 多台应用实例共享认证 Cookie
- Kubernetes / 容器弹性扩缩容
- 需要统一管理密钥生命周期
安装
dotnet add package IGeekFan.AspNetCore.DataProtection.FreeRedis
最小配置
using FreeRedis;
using Microsoft.AspNetCore.DataProtection;
var builder = WebApplication.CreateBuilder(args);
var redis = new RedisClient(builder.Configuration.GetConnectionString("Redis"));
builder.Services
.AddDataProtection()
.SetApplicationName("SampleApp")
.PersistKeysToFreeRedis(redis, "DataProtection-Keys");
配置示例
{
"ConnectionStrings": {
"Redis": "127.0.0.1:6379,password=***,defaultDatabase=0"
}
}
运维建议
SetApplicationName在同一业务集群中保持一致。- Redis 建议启用持久化与高可用。
- 生产环境建议启用 TLS 与访问凭据。