【问题标题】:How to fix : 'IDataProtectionBuilder' does not contain a definition for 'PersistKeysToDbContext' and no accessible extension如何修复:“IDataProtectionBuilder”不包含“PersistKeysToDbContext”的定义并且没有可访问的扩展
【发布时间】:2019-12-04 14:43:54
【问题描述】:

我正在尝试使用来自 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>();

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

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

【问题讨论】:

  • 你想参考 nuget 包 Microsoft.AspNetCore.DataProtection.EntityFrameworkCore,注意核心不是 .net 框架
  • 道歉 - 我有那个参考。我省略了问题中的“核心”部分。我已经更新了问题。
  • 您能否发布包含 using 语句的整个启动代码,如果您可以提供 nuget 文件内容也会有所帮助

标签: c# .net-core entity-framework-core


【解决方案1】:

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

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

我已经测试过了,它可以工作,所以如果它仍然不能工作,你可能需要确保你没有错过任何东西。

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 2019-05-05
    • 1970-01-01
    • 2023-01-19
    • 2020-06-14
    • 1970-01-01
    • 2022-07-21
    • 2023-01-12
    • 2021-07-05
    相关资源
    最近更新 更多