如何修复:“IDataProtectionBuilder”不包含“PersistKeysToDbContext”的定义并且没有可访问的扩展

Tin*_*nus 0 c# entity-framework-core .net-core

我正在尝试使用 services.AddDataProtection() 中的 PersistKeysToDbContext 扩展将密钥持久化到 SQL。目前我们正在使用 PersistKeysToStackExchangeRedis,它工作得非常好,但是确定需要将其移至 DB。

我们正在使用一个 .net Core 2.2 项目,并添加了以下引用:

Microsoft.AspNetCore.DataProtection.EntityFrameworkCore (2.2.0) Microsoft.AspNetCore.DataProtection.Extensions (2.2.0) Microsoft.AspNetCore.DataProtection.StackExchangeRedis (2.2.0) (显然是针对当前功能)

Microsoft.EntityFrameworkCore (2.2.0)

services.AddDataProtection().PersistKeysToDbContext<ApplicationDbContext>();
Run Code Online (Sandbox Code Playgroud)

我从编译器收到以下错误:

“IDataProtectionBuilder”不包含“PersistKeysToDbContext”的定义,并且找不到接受“IDataProtectionBuilder”类型的第一个参数的可访问扩展方法“PersistKeysToDbContext”(您是否缺少 using 指令或程序集引用?)

car*_*ist 7

1) 确保您安装了 Microsoft.AspNetCore.DataProtection.Extensions + Microsoft.AspNetCore.DataProtection.EntityFrameworkCore(作为参考)。

2) 添加using Microsoft.AspNetCore.DataProtection;到 Startup.cs(或任何有问题的地方)。

我已经测试过并且它有效,所以如果它仍然无效,你可能需要确保你没有错过任何东西。