【问题标题】:How to use System.Web.Security.MachineKey protect and unprotect across network如何跨网络使用 System.Web.Security.MachineKey 保护和取消保护
【发布时间】:2013-12-03 04:27:54
【问题描述】:

考虑到 System.Web.Security.MachineKey 使用本地机器密钥来加密和解密同一框中的文本。如果我通过网络将加密文本发送到另一台计算机,我将如何使用此方法。远程计算机将如何解密文本?

【问题讨论】:

    标签: c# security


    【解决方案1】:

    如果远程计算机使用相同的密钥,它可以解密它。

    当您拥有负载平衡的服务器和分布式状态时,通常会出现这种情况,例如sql server 会话状态,并且您希望确保其他服务器可以访问任何会话状态。您将确保负载平衡集群中的所有服务器对于同一个 Web 应用程序都具有相同的机器密钥。

    您只想在 web 应用程序 web.config 中设置机器密钥,而不是全局设置。

    【讨论】:

      【解决方案2】:

      不确定这是否是您的目标:但如果您手动定义它,您可以在多个系统之间共享机器密钥:

      http://msdn.microsoft.com/en-us/library/ff649308.aspx

      Web Farm 部署注意事项

      如果您将应用程序部署在 Web 场中,则必须确保 > 每个服务器上的配置文件共享相同的 validationKey 和 decryptionKey 值,分别用于散列和解密。这是必需的,因为您无法保证哪个服务器 > 将处理连续的请求。

      使用手动生成的键值,设置应类似于以下示例。`

      <machineKey  
      validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
                 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
      decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
      validation="SHA1"
      decryption="AES"
      />
      

      【讨论】:

        猜你喜欢
        • 2015-08-10
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        相关资源
        最近更新 更多