用于ASP.NET中的MachineKey

机器密钥在asp.net中有哪些不同的用途? 我认为以下是正确的,但认为可能还有更多。

  1. 多个应用程序可以使用相同的cookie
  2. 多个服务器可以使用相同的视图状态

MachineKey用于:

  • ViewState加密和validation
  • 表单身份validation(或联合身份validation)使用此密钥对身份validation票证进行签名

在多个服务器上安装Web App需要在所有服务器上配置相同的计算机密钥才能使负载平衡正常工作。

要查看所有详细信息,请参阅: MSDN如何:在ASP.NET 2.0中配置MachineKey

机器密钥还用于加密/解密webresources.axd参数。

即使在单个服务器上,也应该配置计算机密钥,因为app域的任何回收都会在设置为auto时生成新密钥。 这会导致下一个回发仅针对回收之前呈现的页面,导致视图状态validation错误,并且还会在此期间发出资源问题。

加密 – 非常常见。