在 MVC 5 中正确获取 DataProtectionProvider 以进行依赖项注入

2023-11-26

当尝试创建一个DataProtectionProvider手动我偶然发现了 Microsoft 文档DpapiDataProtectionProvider其中说:

用于提供源自于的数据保护服务 数据保护 API。这是您数据保护的最佳选择 应用程序不是由 ASP.NET 托管所有进程都运行为 相同的域标识。

突然出现一个问题:当您的应用程序由 ASP.NET 托管时,最佳选择是什么?

进一步搜索,似乎最好的选择是获得DataProtectionProvider来自欧文。这可以在启动配置中完成,您可以在其中完成IAppBuilder并使用AppBuilderExtensions位于Microsoft.Owin.Security.DataProtection您可以调用的命名空间app.GetDataProtectionProvider().

到目前为止,我还是比较满意的。但是,现在您想要注入DataProtectionProvider在你的类的构造函数中(例如UserManager)。我见过一个建议你存储的地方DataProtectionProvider在静态属性中,然后在需要的地方使用它,但这似乎是一个相当错误的解决方案。

我认为类似于以下代码段的解决方案是合适的(使用 ninject 容器):

kernel.Bind<IDataProtectionProvider>()
    // beware, method .GetDataProtectionProvider() is fictional
    .ToMethod(c => HttpContext.Current.GetOwinContext().GetDataProtectionProvider())
    .InRequestScope();

有一个演练它告诉您如何向 Autofac 注册 DataProtectionProvider。

builder.Register<IDataProtectionProvider>(c => app.GetDataProtectionProvider()).InstancePerRequest();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MVC 5 中正确获取 DataProtectionProvider 以进行依赖项注入 的相关文章

  • ASP.Net MVC AJAX 链接不起作用

    为了实现 AJAX 登录 我在我的页面上有这个链接 附近有一个 id 为 lll 的 div 当我单击该链接时 我得到了无聊的确认 只是出于调试目的而添加 没有它的行为是相同的 但然后什么也没有发生 没有请求到达服务器 因为我在 LogOn
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • Api 控制器中长时间运行的任务(使用 Web API,自托管 OWIN)

    我想在自托管 OWIN 环境中的 ApiController 中运行长时间运行的任务 例如 4 5 分钟 但是 我想在开始该任务后 一旦开始长时间运行的任务 就发回响应 而不等待它完成 这个长时间运行的任务与 HTTP 无关 并且顺序运行一
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • 如何在 BenchmarkDotNet 中使用 DependencyInjection?

    我想在我现在正在使用的一些遗留代码上使用 BenchmarkDotNet 它是用 C Net462 编写的 这是一个庞大 古老且复杂的系统 我想对某些特定类中的一些方法进行基准测试 这些类使用依赖注入 我不确定如何做到这一点 到目前为止我看
  • MVC 操作过滤器和多线程

    我目前遇到了操作过滤器的线程问题 在我的应用程序上 我使用 ActionFilter 来执行每个操作的跟踪 此跟踪将提供统计信息 例如调用的持续时间 并记录参数被派往行动 实际的跟踪实现 由其他团队完成 使用 IDisposable 对象
  • 如何从 C# 中的两个列表中获取唯一对象?

    我有两个列表对象 例如 list1 id 101 name one id 102 name two id 103 name three list2 id 111 name one id 112 name two id 114 name fo
  • 使用 DependencyResolver 通过 MVC 3 进行控制器实例化时出错

    我正在使用 MVC 3 并在应用程序启动时使用以下代码 UnityContainer container new UnityContainer new UnityMappings container DependencyResolver S
  • ASP.NET Core Tag Helper Checkbox 不保存未选中的值

    我正在使用标签帮助程序在 MVC 表单中添加一个复选框 div class form group div
  • 如何使用 Error.cshtml 视图中的过滤器放入 ViewBag 的数据?

    我有一个操作过滤器 负责将一些通用信息放入 ViewBag 中 供共享 Layout cshtml 文件中的所有视图使用 public class ProductInfoFilterAttribute ActionFilterAttribu
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 在 ASP.NET Core 2.0 Web Api 中返回“原始”json

    AFAIK 在 ASP NET Core Web Api 中返回数据的标准方法是使用IActionResult并提供例如一个OkObject结果 这对于对象来说效果很好 但是如果我以某种方式获得了一个 JSON 字符串 并且我只想将该 JS
  • 在 MVC 应用程序中使用 DataTables.NET ajax 调用访问 WebAPI 2 json

    我一直在尝试让 DataTables NET 与我构建的 WebAPI RESTFul 服务很好地配合 但返回的 json 似乎不符合 DataTables 正在寻找的内容 我尝试了各种 服务器处理 示例以及我在互联网上找到的一些示例 例如
  • javax.inject.Named 注释的用途是什么?

    我正在尝试理解javax inject包 我不清楚是什么javax inject Named注释应该用于 Javadoc 没有解释其背后的想法 Javadoc 位于http download oracle com javaee 6 api
  • 检测 ASP.NET MVC 上的会话过期

    我构建了一个购物车 它使用会话状态在用户浏览商店时保留购物车数据 我遇到一个问题 如果我在购物车的第 1 步上长时间打开浏览器窗口 然后按 转到第 2 步 我的操作会引发错误 因为第 2 步操作假定会话尚未过期并且ShopCart 对象处于
  • 发送 POST 请求时 JSON 原语无效

    我有以下 ajax 请求 其中我尝试将 JSON 对象发送到服务器 function sendData subscriptionJson ajax type POST url Url Action SubscribeSecurities S
  • 无法解析类型为 xxx 的任何 bean;限定符:[@javax.enterprise.inject.Any()]

    我有一个 LoginProvider 接口 public interface LoginProvider boolean login String username String password 以及两种不同的实现 public clas
  • 使用 Automapper 映射列表

    我有课程 public class Person Props here public class PersonViewModel Props here 然后是清单 List
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6

随机推荐

  • Django 是同步还是异步?

    Django 是同步还是异步 我想知道 Django 框架是同步的还是异步的 我听说过面试问题 他们询问你正在使用的框架是同步还是异步 所以我想知道它的含义同步和异步在网络开发方面 Django 本身是同步的 每个 HTTP 请求都将完全同
  • 如何处理const对象中非常量引用成员的初始化?

    假设你有课 class C int i public C int v i v void method const this method does not change i void method this method changes i
  • 让音乐应用程序在后台、iOS 和 Android 中保持活力?

    我正在使用 Flutter 构建一个音乐播放应用程序 它帮助我作为一个开发人员为两个平台构建一次应用程序 然而 我在这两个平台上分别遇到了一些问题 尽管我已经克服了其中一些障碍 但我就是无法找出一个主要的错误 问题 这些错误 问题只会使制作
  • 使用Spring Boot处理MultipartException并显示错误页面

    我使用 Spring Boot 设置了一个非常简单的文件上传 我想知道是否有一种简单的方法可以在超过最大文件大小时显示错误页面 我上传了一个非常简单的示例来说明我想要实现的目标在 github 上 基本上 这个想法是在全局 Spring 异
  • 使用 Google Webfonts 时 Outlook 中的 CSS 字体堆栈替换问题

    在 HTML 电子邮件中使用 Google Webfonts 时 我在 Outlook 2007 2010 等 中遇到了字体替换问题 这些问题在合并 webfonts 之前不会发生 它会忽略字体堆栈并直接转到 Times 尽管使用内联后备字
  • Android 10 中访问 /proc/net/arp ARP 表的权限被拒绝

    使用 ARP 表 我们可以访问 Android 9 及更早版本中热点连接设备的 IP 和 MAC 现在 从 Android 10 开始 同样的权限被拒绝 请建议我如何在 Android 10 中访问已连接设备的 IP 和 MAC 地址 下面
  • Scipy 的优化曲线拟合限制

    有什么方法可以为 Scipy 的优化曲线拟合提供限制吗 我的例子 def optimized formula x m 1 m 2 y 1 y 2 ratio 2 return log x 0 m 1 m 2 1 x 1 max age 1
  • 启用 Log4J2 + Apache HttpClient 的调试日志记录

    我试图激活我的 Apache HttpClient 的调试日志记录 但无法使其工作 根本没有获得与 HttpClient 相关的日志输出 这是我目前使用的 log4j2 配置
  • 映射列表,除了最后一个列表元素

    如何最好地映射列表中除最后一个列表元素之外的所有元素 假设我们有一个清单let l 1 2 3 4 并想要得到 2 3 4 4 我确实有一个解决方案 但感觉不像 功能 方式 在 ghci 中 let l 1 2 3 4 let len to
  • URL 重写以在 url 开头添加目录

    在我的网站上 所有图像 样式表都位于 CMS 目录中 最近 我们的网站转移到新服务器的临时网址 他们引用了 newdirectory CMS 我们如何将 newdirectory 附加到所有 CMS 调用 在 的里面 htaccess fi
  • FD_CLOEXEC fcntl() 标志有什么作用?

    Like so if fcntl fd F SETFD FD CLOEXEC 1 虽然我读过man fcntl 我不明白它有什么作用 它设置了执行时关闭文件描述符的标志 这会导致文件描述符在任何时候自动 并且原子地 关闭exec 家庭功能成
  • R 中有吸引力的 3D 绘图

    我正在写一个提案 需要一个像这样的 3D 绘图 但最好更具吸引力 我需要每个点的大小来反映物种的丰富度以及通过连接点创建的体积轮廓 样本数据 input lt data frame label c sp1 sp2 sp3 sp4 trait
  • 存储过程/函数列表 Mysql 命令行

    如何在 mysql 命令行中查看存储过程或存储函数的列表 例如show tables or show databases 命令 SHOW PROCEDURE STATUS SHOW FUNCTION STATUS
  • 在 Asp.net Core 中设置 CultureInfo 以获得 .作为CurrencyDecimalSeparator 而不是 ,

    我要疯了 我只是希望将整个 Asp net core 应用程序中使用的区域性设置为 en US 但似乎没有任何作用 在哪里设置整个应用程序的文化 我对客户端浏览器文化之类的不感兴趣 唯一改变它的似乎是更改 Windows 的语言设置 我只是
  • HTML - 如何将段落分成同样宽的行?

    这是关于基本的 HTML CSS 页面渲染 当一个段落太长而无法容纳在一行中时 它会尽可能多地占据空间 然后换行 如此反复 我希望我的网页能够进行换行 以便生成的行尽可能相等 所以不要得到 包裹包裹包裹包裹包裹 包裹包裹包裹包裹包裹 包裹包
  • Windows 批处理文件不等待命令完成

    我有一个批处理文件 该文件一启动 以管理员身份运行 就存在 并且不执行其中的命令 但如果我在命令行指定它 它会正常运行并执行所有命令 这是其中的内容 start wait msiexec x SetupServices msi qn l S
  • 如何通过 Azure 资源管理器设置 Azure 应用服务在 .Net Core 上运行

    我使用以下 ARM 模板片段设置了应用服务 name variables webBackEnd type Microsoft Web sites location parameters location apiVersion 2015 08
  • 获取所有相关的 Django 模型对象

    如何获取具有指向对象的外键的所有模型对象的列表 类似于 DELETE CASCADE 之前 Django 管理中的删除确认页面 我试图想出一种合并数据库中重复对象的通用方法 基本上 我希望所有具有外键指向对象 B 的对象都更新为指向对象 A
  • 有没有办法指示 argparse (Python 2.7) 从 sys.argv 中删除找到的参数?

    我正处于开发过程中 这个项目正在变成一个相当重要的 Python 2 7 项目 现在我已经拥有了我的全部unittest类集中在自己的模块中 tests py 大约有3300行 这是疯狂的大 无法导航 到处都是不好的做法等等 所以 我当前的
  • 在 MVC 5 中正确获取 DataProtectionProvider 以进行依赖项注入

    当尝试创建一个DataProtectionProvider手动我偶然发现了 Microsoft 文档DpapiDataProtectionProvider其中说 用于提供源自于的数据保护服务 数据保护 API 这是您数据保护的最佳选择 应用