在web场中添加machineKey到web.config
我们(真正的IT合作伙伴)最近改变了我们的一个网站养殖网站的一些DNS,以便两个生产服务器在两者之间进行循环DNS切换。 在这个开关之前,我们并没有真正遇到WebResource.axd
文件的问题。 由于切换,当我们点击实时公开的URL,我们得到一个错误:
CryptographicException
填充无效,无法删除。
当我们打到特定的服务器本身,他们加载罚款。 我已经研究了这个问题,似乎是因为他们在两台服务器之间共享资源,所以我们需要在每台服务器的web.config
都有一个一致的machineKey
,以便他们能够在两者之间一致地进行encryption和解密。 我的问题是:
- 我可以通过服务器上的工具生成一个
machineKey
,还是我需要编写代码来完成这个工作? - 我是否需要将
machineKey
添加到每个服务器上的web.config
,或者您认为我需要做其他任何事情来使这两个服务器一起工作吗? (两个web.config
目前没有一个machineKey
)
这应该回答:
如何在ASP.NET 2.0中configurationMachineKey – Web场的部署注意事项
简而言之,要设置机器密钥,请参阅以下链接: 设置机器密钥 – 果园文档 。
并将以下行添加到system.web
标记下的所有webservers
的web.config
文件中(如果它不存在)。
<machineKey validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
请确保您拥有机器密钥和web.config
文件的永久备份
如果您使用的是IIS 7.5或更高版本,则可以从IIS生成计算机密钥,并将其直接保存到web.config中,然后将新的web.config复制到每个服务器。
- 打开IISpipe理器。
- 如果您需要为所有应用程序生成并保存MachineKey,请在左窗格中select服务器名称,在这种情况下,您将修改根web.config文件(位于.NET框架文件夹中)。 如果您的目的是为特定网站/应用程序创buildMachineKey,则从左窗格中select网站/应用程序。 在这种情况下,您将修改您的应用程序的
web.config
文件。 - 双击中间窗格中ASP.NET设置中的“机器密钥”图标:
- MachineKey部分将从configuration文件中读取并显示在UI中。 如果您没有configuration特定的MachineKey并自动生成,您将看到以下选项:
- 现在,您可以单击右侧窗格上的生成密钥来生成随机MachineKeys。 当你点击应用时,所有的设置将被保存在
web.config
文件中。
完整的详细信息可以看出@ 最简单的方法来生成MachineKey – 技巧和窍门:ASP.NET,IIS和.NET开发…
确保从刚刚发生的填充oracle asp.net漏洞 (你应用了补丁,对吧?)学习,并使用受保护的部分来encryption机器密钥和任何其他敏感configuration。
另一个select是在机器级web.config中设置它,所以它甚至不在网站文件夹中。
生成它就像David的答案中的链接文章一样。