From 0d5fb831debcb5a75f4b035b502e3a709a97f1a7 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 12 Jun 2024 14:55:39 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B3=A8=E5=86=8CDataProtection=20?= =?UTF-8?q?fix#361?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 1 + .../Blog.Core.Extensions.csproj | 1 + .../ServiceExtensions/DataProtectionSetup.cs | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 Blog.Core.Extensions/ServiceExtensions/DataProtectionSetup.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 0b9dfd3..bc2b51c 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -97,6 +97,7 @@ builder.Services.Configure(x => x.AllowSynchronousIO = tru .Configure(x => x.AllowSynchronousIO = true); builder.Services.AddSession(); +builder.Services.AddDataProtectionSetup(); builder.Services.AddControllers(o => { o.Filters.Add(typeof(GlobalExceptionsFilter)); diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 96183e4..31a5021 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -10,6 +10,7 @@ + diff --git a/Blog.Core.Extensions/ServiceExtensions/DataProtectionSetup.cs b/Blog.Core.Extensions/ServiceExtensions/DataProtectionSetup.cs new file mode 100644 index 0000000..b14fdd9 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/DataProtectionSetup.cs @@ -0,0 +1,21 @@ +using Blog.Core.Common; +using Blog.Core.Common.Option; +using Microsoft.AspNetCore.DataProtection; +using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; + +namespace Blog.Core.Extensions.ServiceExtensions; + +public static class DataProtectionSetup +{ + public static void AddDataProtectionSetup(this IServiceCollection services) + { + var builder = services.AddDataProtection(); + + var redisOption = App.GetOptions(); + if (redisOption.Enable) + { + builder.PersistKeysToStackExchangeRedis(App.GetService()); + } + } +} \ No newline at end of file