ASP.NET Core 中的密钥加密

pro*_*011 3 c# cryptography data-protection asp.net-core

Microsoft.AspNetCore.DataProtection在 ASP.NET Core 2.0 应用程序中使用数据保护。对于默认设置,我在Startup.cs文件中添加了以下代码

public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddDataProtection().ProtectKeysWithDpapi();
        ...
        ...
    }
Run Code Online (Sandbox Code Playgroud)

但该代码引发错误:

InvalidOperationException: 找不到“IXmlRepository”实例。设置“IXmlEncryptor”实例时,还必须设置相应的“IXmlRepository”实例。

我在这个实现中遗漏了什么吗?

Hen*_*ema 7

您指定如何加密密钥(在Windows DPAPI实现的IXmlEncryptor),但你没有指定要坚持加密密钥(的IXmlRepository)。有多种选项可以保留密钥,例如文件系统、注册表或云中的某个远程位置。

尝试使用PersistKeysToFileSystem()PersistKeysToRegistry()。我建议您查看有关 ASP.NET Core 数据保护配置的文档