【问题标题】:Uses for MachineKey in ASP.NETASP.NET 中 MachineKey 的用途
【发布时间】:2014-03-20 18:48:41
【问题描述】:

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

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

【问题讨论】:

  • @Ben 在寻找其他信息时发现了这个问题,并在答案中添加了一些缺失的信息。

标签: c# asp.net cookies viewstate machinekey


【解决方案1】:

MachineKey 用于:

  • ViewState 加密和验证
  • 表单身份验证(或联合身份验证)使用此密钥签署身份验证票

在多台服务器上安装 Web 应用程序需要在所有服务器上配置相同的机器密钥才能使负载平衡正常工作。

查看全部详情,请参考:MSDN How To: Configure MachineKey in ASP.NET 2.0

【讨论】:

    【解决方案2】:

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

    即使在单台服务器上也应该配置机器密钥,因为应用域的任何回收都会在设置为自动时生成一个新密钥。这会导致仅在回收之前呈现的页面的下一次回发,从而导致视图状态验证错误,并且在此期间也会出现资源问题。

    【讨论】:

      【解决方案3】:

      加密 - 很常见。

      【讨论】:

      • cookies 和 viewstate 中的值是基于 MachineKey 加密的。你能说一下还有什么被加密的吗?
      • f.e.会员提供者的密码可以使用机器密钥加密
      • @mikus:这是个坏主意。应改为使用具有每个用户唯一盐的散列。
      • 相当古老的东西 :D 我不认为我的意思是加密存储在数据库中的用户密码,而是系统使用的凭据,现在不记得了
      猜你喜欢
      • 2018-03-21
      • 2023-03-17
      • 2020-09-23
      • 2022-01-24
      • 2019-07-28
      • 2014-04-27
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多