asp.net core 2.0中的机器密钥?

2023-11-26

我有相同的 asp.net core 2 应用程序在 2 个不同的服务器上运行,但使用相同的数据库来存储用户等。

问题是,如果我在一台服务器中创建并设置用户密码,则运行同一应用程序的另一台服务器将返回无效密码,反之亦然。

几年前,我在使用 ASP.NET 4 应用程序时遇到了这个问题,我通过为两个应用程序设置相同的机器密钥来修复它。

我听说过数据保护 api,但我找不到在哪里告诉它使用相同的加密密钥,相反,我发现复杂的示例让我感到困惑,我需要的只是让两台服务器都能理解彼此的加密。


您可以将一台服务器保留为主要服务器,将另一台服务器保留为辅助服务器。在辅助服务器中禁用自动密钥生成

using Microsoft.AspNetCore.DataProtection;

public void ConfigureServices(IServiceCollection services)
{
     services.AddDataProtection().DisableAutomaticKeyGeneration();
}

或者你可以将它们持久化到 Redis

public void ConfigureServices(IServiceCollection services)
{
    // sad but a giant hack :(
    // https://github.com/StackExchange/StackExchange.Redis/issues/410#issuecomment-220829614
    var redisHost = Configuration.GetValue<string>("Redis:Host");
    var redisPort = Configuration.GetValue<int>("Redis:Port");
    var redisIpAddress = Dns.GetHostEntryAsync(redisHost).Result.AddressList.Last();
    var redis = ConnectionMultiplexer.Connect($"{redisIpAddress}:{redisPort}");

    services.AddDataProtection().PersistKeysToRedis(redis, "DataProtection-Keys");
    services.AddOptions();

    // ...
}

详细的文章可在同一

http://www.tugberkugurlu.com/archive/asp-net-core-authentication-in-a-load-balanced-environment-with-haproxy-and-redis

PS:上面发布的代码来自同一篇文章,因此如果链接断开,答案仍然完整

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

asp.net core 2.0中的机器密钥? 的相关文章

随机推荐

  • 确定更改的事件是否因用户输入而发生

    在 C 中 无论该值是由用户直接更改还是由于某些其他事件而以编程方式更改 控件 例如 numericupdown 的 Changed 事件都会被触发 有没有办法确定事件是否是由于用户输入而发生的 例如 手动更改 numericUpDown1
  • 当块位于初始值设定项中时捕获块中的变量

    考虑一下 id observer NSNotificationCenter defaultCenter addObserverForName MyNotification object nil queue nil usingBlock NS
  • 正则表达式模式用于检查字符串中每个单词的第一个字母在 Javascript 中是否为大写

    例如我的字符串是Foo Bar 该字符串应该与模式匹配 如果字符串是Foo bar 该字符串不应匹配 如果字符串是福巴 福巴字符串应该匹配 如果字符串是Foo 它也应该匹配 到目前为止我只有这个模式 A Z 1 s 基本上我只会接受每个单词
  • WPF:如何通过 XAML 将整个 Control 作为 CommandParameter 传递?

    我正在使用 MVVM 自定义 ICommand 对象由 ViewModel 层提供 一个 ViewModel 对象可以同时通过 DataContext 属性附加到许多 View 对象 窗口 页面等 在 ICommand CanExecute
  • SqlDependency 与 EntityFramework 6(异步)

    我正在使用 EF 6async查询特征 例如 var list await cx Clients Where c gt c FirstName Length gt 0 ToListAsync 我还想启动对这些查询的 SQL 依赖项 以便在数
  • 如何更改 WCF 中的 SOAP 信封架构?

    我正在通过 WCF 连接到第三方端点 但遇到一个问题 WCF 生成的 SOAP 信封架构与端点不兼容 目前 WCF 正在生成
  • 滚动到特定 div

    我有几个divs posts其中有一个attr data id这对应于mysql DB id div class posts div div class posts div 现在如果我想滚动到特定的div只有我知道data id 我将如何滚
  • RX Observable.TakeWhile 检查每个元素之前的条件,但我需要在之后执行检查

    Observable TakeWhile 允许您在条件为真时运行序列 使用委托 以便我们可以对实际序列对象执行计算 但它会在每个元素之前检查此条件 如何在每个元素之后执行相同的检查 下面的代码演示了这个问题 void RunIt List
  • 将字符集转换为 nfa/dfa 的高效算法

    我目前正在研究扫描仪生成器 发电机已经工作正常 但是当使用字符类时 算法会变得非常慢 扫描仪生成器生成 UTF8 编码文件的扫描仪 应支持完整范围的字符 0x000000 到 0x10ffff 如果我使用大字符集 例如任何运算符 或 uni
  • iframe 内容在 Firefox 上消失

    我正在用基本的 HTML 填充一个空的 iframe 使用 iframe contents find body html contentBody See http jsfiddle net UjT2b 2 这在 Chrome 上效果很好 在
  • Mapbox gl js - 重叠图层和鼠标事件处理

    是否有任何清晰可靠 和描述 的机制来控制 Mapbox GL JS 中重叠图层的鼠标事件 例如 我有 3 个重叠的层 但希望仅对顶部的层调用单击处理程序 而不是对所有 3 个层调用 这是否可能 目前 作为解决方法 我跟踪 MouseEnte
  • Jpgraph 不会改变我的条形图上的颜色

    我刚刚开始使用 jpgraph 和 XAMPP 我想制作一个条形图 当我在网上阅读一些文章时 它说您可以传递一系列颜色来设置填充颜色 以便每个条形都具有不同的颜色 然而 每当我传递它的颜色时 图表都不会改变其默认的浅蓝色颜色 图表响应数据的
  • 扩展 prestashop web 服务资源

    我正在尝试延长carts多一个字段的资源应输出以下结果Cart getSummaryDetails称呼 我已经延长了CartCore类添加新参数和相应的方法 如下所示 class Cart extends CartCore protecte
  • MS Access 通过文本框而不是下拉列表搜索记录

    我对 MS Access 还很陌生 我正在尝试创建一个简单的表单 基本上将使用文本框而不是下拉框搜索特定记录 本质上 用户将能够输入 ID 号并检索一些其他相关信息 但是 我不希望用户能够向数据库添加任何新记录 我已经能够让表单看起来像我想
  • 使用 Javascript 转到本地 URL

    同样的问题here但我需要在 Firefox 中访问本地 URL 我尝试使用类似的代码 var url file E Test Test htm window location href url 但 id 不起作用 尝试去与window l
  • PHP PDO 缓存

    我一直在寻找这个问题的答案 但没有在任何地方找到 对 PDO prepare 的调用是否已缓存 或者我应该自己缓存结果 即如果我执行以下操作 function foo handle PDO prepare do stuff with the
  • SQL Server ORDER BY 日期和最后的空值

    我正在尝试按日期订购 我希望最近的日期排在最前面 这很简单 但是有许多记录为空 并且这些记录位于任何具有日期的记录之前 我尝试了一些方法但没有成功 ORDER BY ISNULL Next Contact Date 0 ORDER BY I
  • 更改 PreferenceActivity 文本颜色

    我想将 Android 应用程序的首选项屏幕的外观更改为深色文本颜色 我怎样才能做到这一点 我已经将背景更改为白色 我假设您使用一个 Activity 来扩展PreferenceActivity 您可以使用setTheme方法在您的首选项屏
  • 使用 web.config 允许服务器端包含在 HTML 文件中 (IIS)

    在IIS 7 5中 是否可以使用网络配置单独启用SSI处理具有以下内容的文件 html扩大 具体来说 我不想使用默认的 SSI 扩展 shtml Reason 我不想更改扩展名 这样做会导致搜索引擎结果中的链接损坏 另外 我这样做的动机是网
  • asp.net core 2.0中的机器密钥?

    我有相同的 asp net core 2 应用程序在 2 个不同的服务器上运行 但使用相同的数据库来存储用户等 问题是 如果我在一台服务器中创建并设置用户密码 则运行同一应用程序的另一台服务器将返回无效密码 反之亦然 几年前 我在使用 AS