为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 IIS 级别的 Asp.Net Core 中配置 MachineKey

如何在 IIS 级别的 Asp.Net Core 中配置 MachineKey

C#
侃侃尔雅 2022-10-15 14:06:20
我有两台服务器,在服务器之间的通信中,我检查了IIS级别的机器密钥。现在我在net core中有一个新项目,我想像 Asp.net 项目一样检查机器密钥。我搜索这个但找不到解决方案
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

ASP.NET Core 不使用 Web.config,即使使用了,它也不使用机器密钥。加密是通过数据保护 API处理的,它以完全不同的方式存储和生成密钥。

如果您需要在 ASP.NET 和 ASP.NET Core 之间共享诸如 cookie 之类的东西,则必须以相反的方式工作并将数据保护 API 插入到您的 ASP.NET 应用程序中,以便它们使用与 ASP 相同的系统。 NET 核心。微软有一个指南


查看完整回答
反对 回复 2022-10-15
?
达令说

TA贡献1821条经验 获得超6个赞

嗯,这有点取决于你在做什么。如果您的项目使用 Microsoft Identity,则 Identity 默认使用机器密钥作为哈希的一部分。因此,就我而言,我的网站会发送一封电子邮件,要求用户验证他们的电子邮件。该链接包括基本上是加密的密码哈希 - 部分 - 使用来自它的服务器的机器密钥。

因此,如果用户单击该链接,然后在场中的另一台服务器上结束,则验证检查将失败,除非在负载均衡器后面的各个服务器上将机器密钥设置为相同。

所以在这一点上我还没有找到在发布到 IIS 时设置机器密钥的好方法。web.config 是在从我的 ASP.NET 核心项目发布期间自动生成的。此时我找到的唯一解决方案是在发布项目后手动打开 web.config 并在部署到场中的服务器之前插入机器密钥部分。


查看完整回答
反对 回复 2022-10-15
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信