跳到主要内容

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 与访问凭据。

相关文档