1

我正在创建一个新的 asp.net core 2 网站,该网站根据本文使用数据保护。作为第一遍,我在没有保护密钥的情况下创建了它(因为我们还没有投入生产),例如

public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(@"\\server\share\directory\"));
}

正如预期的那样,这在我们的测试环境中生成了不受保护的密钥。接下来,我添加了ProtectKeysWithCertificate扩展名,以便对所有新生成的密钥进行加密,例如

public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(@"\\server\share\directory\"))
        .ProtectKeysWithCertificate("thumbprint");
}

然而,我遇到的问题正是......它只是加密密钥。它很高兴使用原始的非加密密钥,因为它从未被撤销,而且它的到期时间是几个月后。

asp.net 有没有办法检测数据保护的配置已更改并生成新密钥?

本文建议,如果我们需要在预定滚动时间之前启动设置以进行调用,IKeyManager.CreateNewKey但我不希望每次应用程序启动时都发生这种情况。

正如我所说,这还没有投入生产,所以我确实有从我们的测试环境中手动删除密钥的后备选项,但我很想知道是否还有其他方法。

4

0 回答 0