configparser.nosectionerror_sqlsession was not registered

configparser.nosectionerror_sqlsession was not registered在ASP.NETCore中如果在DataProtection中使用了PersistKeysToFileSystem或PersistKeysToFileSystemservices.AddDataProtection().PersistKeysToFileSystem();services.AddDataProtection().PersistKeysToRedis();会在日…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在 ASP.NET Core 中如果在 DataProtection 中使用了 PersistKeysToFileSystem 或 PersistKeysToFileSystem

services.AddDataProtection().PersistKeysToFileSystem();
services.AddDataProtection().PersistKeysToRedis();

会在日志中出现下面的告警:

warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
      No XML encryptor configured. Key {08f8b6bf-e57a-440b-9fa7-39f319725b58} may be persisted to storage in unencrypted form.

这是由于 DataProtection 所用到的密钥本身没有被加密存储,要消除这个告警,需要一个专门用来加密“密钥”的密钥。

首先用 openssl 命令创建密钥,得到 cnblogs.pfx 文件

# openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout cnblogs.key -out cnblogs.crt -subj "/CN=cnblogs.com" -days 3650
# openssl pkcs12 -export -out cnblogs.pfx -inkey cnblogs.key -in cnblogs.crt -certfile cnblogs.crt -passout pass:

然后在 .csproj 项目文件中添加资源文件 Resource.resx ,将 cnblogs.pfx 添加到 Resource.resx ,并将 “Build Action” 设置为 “Embedded resource” 。

<ItemGroup>
  <None Remove="Resources\cnblogs.pfx" />
</ItemGroup>

<ItemGroup>
  <EmbeddedResource Include="Resources\cnblogs.pfx" />
</ItemGroup>

最后在 Startup 中添加下面的代码就可以成功消除告警。

public void ConfigureServices(IServiceCollection services)
{
    //..
    services.AddDataProtection()
        .PersistKeysToFileSystem(new System.IO.DirectoryInfo(@"./"))
        .ProtectKeysWithCertificate(GetCertificate());
}

private X509Certificate2 GetCertificate()
{
    var assembly = typeof(Startup).GetTypeInfo().Assembly;
    using (var stream = assembly.GetManifestResourceStream(
        assembly.GetManifestResourceNames().First(r => r.EndsWith("cnblogs.pfx"))))
    {
        if (stream == null)
            throw new ArgumentNullException(nameof(stream));

        var bytes = new byte[stream.Length];
        stream.Read(bytes, 0, bytes.Length);
        return new X509Certificate2(bytes);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191993.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月21日 下午12:22
下一篇 2026年1月21日 下午1:01


相关推荐

  • linux 清屏命令

    linux 清屏命令在 windows 的 DOS 操作界面里面 清屏的命令是 cls 那么在 linux 里面的清屏命令是什么呢 下面笔者分享几种在 linux 下用过的清屏方法 1 clear 命令 这个命令将会刷新屏幕 本质上只是让终端显示页向后翻了一页 如果向上滚动屏幕还可以看到之前的操作信息 2 Ctrl l 小写的 L 这是一个清屏的快捷键 这个是笔者在工作中用得最多的一种清屏方式 清屏效果同 clear 命令一样 3 res

    2026年3月17日
    3
  • pycharm闪退,在C:\Users下生成java_error_in_pycharm64_9092.log

    pycharm闪退,在C:\Users下生成java_error_in_pycharm64_9092.log看日志内容 Afatalerrorh EXCEPTION ACCESS VIOLATION 0xc0000005 atpc 0x00007ffa29 pid 9092 tid 9348JREversi OpenJDKRunti 11 0 9 1 11 1145 37 jcef 11 0 9 1 11 buil

    2026年3月27日
    1
  • 【图文】Claude Code & Kimi K2 环境配置指南 (Windows/macOS/Ubuntu)

    【图文】Claude Code & Kimi K2 环境配置指南 (Windows/macOS/Ubuntu)

    2026年3月16日
    2
  • 黄金搭档:rsync与inotify

    黄金搭档:rsync与inotify目录一 rsync 同步 一 概述二 常用命令二 inotify 实时监控 概述三 服务组合过程四 实验一 rsync 二 rsync inotify 一 rsync 同步 一 概述 1 rsync 是 linux 系统下的数据镜像备份工具 RemoteSync 是快速增量备份工具 可以远程同步 支持本地复制 2 可以不改变原有的数据属性信息 实现数据的备份迁移特性 3 因 delta transfer 算法 二进制比较算法 受欢迎 4 使用 c s 架构 端口号为 873 二 常用命令常用选项含义

    2026年3月17日
    1
  • 硬件设计——外围电路(电源电路)[通俗易懂]

    硬件设计——外围电路(电源电路)[通俗易懂]引言 当我们设计一个完整的电路而言,我们除了要知道我们要设计的主芯片电路,如FPGA,DSP,还要知道一些外围电路,如电源电路,复位电路、晶振电路等等。这篇文章我们先来讲解一下对于如何设计一个电源电路。 正文 首先我们查询主芯片的datesheet,根据datesheet,可知主芯片采用多大的电压才能正常工作,然后我们根据其设计电源电路。每个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是用电池。..

    2022年5月6日
    73
  • sizeof和strlen的区别(strlen和sizeof的用法)

    charstr[20]=”0123456789″;int  a=strlen(str);/*a=10;strlen计算字符串的长度,以�为字符串结束标记。int  b=sizeof(str);/*b=20;sizeof计算的则是分配的数组str[20]所占的内存空间的大小,不受里面存储的内容影响========================================

    2022年4月14日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号