C# 如何在IIS级别的Asp.Net内核中配置MachineKey

C# 如何在IIS级别的Asp.Net内核中配置MachineKey,c#,iis,asp.net-core,asp.net-core-mvc,C#,Iis,Asp.net Core,Asp.net Core Mvc,我有两台服务器,在服务器之间的通信中,我在IIS级别中检查机器密钥。现在,我在netcore中有一个新项目,我想检查机器密钥,比如Asp.net项目。我搜索这个,但找不到解决方案。ASP.NET Core不使用Web.config,即使使用了,也不使用机器密钥。加密是通过处理的,它以完全不同的方式存储和生成密钥 如果需要在ASP.NET和ASP.NET Core之间共享Cookie之类的内容,则必须以相反的方式工作,并将数据保护API插入到ASP.NET应用程序中,以便它们使用与ASP.NET

我有两台服务器,在服务器之间的通信中,我在IIS级别中检查机器密钥。现在,我在netcore中有一个新项目,我想检查机器密钥,比如Asp.net项目。我搜索这个,但找不到解决方案。ASP.NET Core不使用Web.config,即使使用了,也不使用机器密钥。加密是通过处理的,它以完全不同的方式存储和生成密钥


如果需要在ASP.NET和ASP.NET Core之间共享Cookie之类的内容,则必须以相反的方式工作,并将数据保护API插入到ASP.NET应用程序中,以便它们使用与ASP.NET Core相同的系统。微软对此有自己的看法。

好吧,这完全取决于你在做什么。如果您的项目使用Microsoft标识,则默认情况下,标识将使用计算机密钥作为哈希的一部分。因此,在我的例子中,我的网站发送了一封电子邮件,要求用户验证他们的电子邮件。该链接包含基本上是密码散列加密的内容,部分内容是使用来自其源服务器的机器密钥加密的

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

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