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);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Car Fleet

    Car FleetN carsaregoingtothesamedestinationalongaonelaneroad. Thedestinationis target milesaway.Eachcar i hasaconstantspeed speed[i] (inmilesperhour),andinitialposition position[i] m…

  • idea集成svn使用教程_idea svn使用教程

    idea集成svn使用教程_idea svn使用教程1IDEA集成SVN1.1下载SVN客户端这里使用的是TortoiseSVN,下载后安装,然后记住安装路径。官方下载地址:TortoiseSVN官方下载地址1.2安装SVN客户端在安装svn客户端的时候一定要勾选,否则在idea上集成svn的时候会找不到svn.exe而报错。如果安装时忘记勾选了的话,安装包重新运行,选择modify,然后勾选commandlinecl…

    2022年10月17日
  • Zuul网关集群_zuul网关

    Zuul网关集群_zuul网关1,Zuul网关集群原理![在这里插入图片描述](https://img-blog.csdnimg.cn/20201019212045203.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4ODQ1Mjcx,size_16,color_FFFFFF,t_70#pic_center)…

  • zookeeper 分布式锁原理(分布式锁实现原理)

    Zookeeper分布式锁的原理问:在什么样的场景下我们需要使用Zookeeper分布式锁呢?在分布式的项目中,指定的项目我们需要使用到锁的机制,但是在分布式下我们使用的内存锁都是相对独立的,因为每一个项目都有一个自己的JVM,而我们使用java类的锁都是受JVM控制的,这样在两台真实服务器上调用同一把锁的时候是没有办法进行锁操作,这个是我们就需要用到Zookeeper分布式锁了。…

  • pycharm配置文件路径_pycharm添加解释器

    pycharm配置文件路径_pycharm添加解释器搭建Python环境1.下载安装python首先进入python官网https://www.python.org/2.点击windows3.如图所示,点击python3.8.34.在下载页面选择如图所示的下载安装包5.下载完之后,开始安装,按下图所示勾选,然后进入用户设置页面customizeinstallation6.按照图示勾选,然后next7.勾选installforalluse…

  • 【显卡】rx470显卡挖矿算力,rx470挖矿算力,rx470显卡挖矿超频设置

    【显卡】rx470显卡挖矿算力,rx470挖矿算力,rx470显卡挖矿超频设置已下是RX470显卡挖矿算力参数RX470,8卡矿机,算力是216m,功耗1110w,日产量ETH单位0.00636909

发表回复

您的电子邮箱地址不会被公开。

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