【问题标题】:How can I modify MachineKey for s Session State Server?如何修改 s 会话状态服务器的 MachineKey?
【发布时间】:2011-03-18 10:40:31
【问题描述】:

我正在尝试实现一个 SessionState 服务器以允许多个 Web 服务器共享相同的状态。起初,这将是不同的开发机器,然后是网络场中的不同网络服务器。

到目前为止,我认为我取得了不错的进展,但其中一项要求让我感到困惑。为了实现这一点,我需要确保所有 Web 服务器都使用相同的机器密钥。

这是从我的本地开发机器中获取的示例 MachineKey:

<section name="machineKey"
    type="System.Web.Configuration.MachineKeySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    allowDefinition="MachineToApplication"/>

如果我们在本地部署了 Session State Server,我们是否需要确保使用该服务的所有其他机器(特别是在同一个项目上工作的其他开发人员,然后当我们部署到网络场时)具有准确的他们的 Machine.Config 文件中有相同的条目吗?

或者我是否必须以某种方式生成一个可以应用于所有机器的新机器密钥?

【问题讨论】:

    标签: asp.net session session-state


    【解决方案1】:

    MachineKey 是密钥,会话被加密给用户。

    这意味着,它们仅在 Web 服务器上有用,因为它们将其加密到客户端请求。

    我认为 SessionState 机器密钥根本不重要(但我现在没有找到说明...的文档)

    【讨论】:

    • 我不确定我是否理解。如果 3 个开发人员都使用相同的机器密钥 - 基本上是我上面指定的相同字符串,那么在他们的本地 IIS 上运行他们的应用程序时,他们不应该都能够使用相同的会话状态服务器吗?
    • 机器密钥条目看起来像这样 '' 应该放在你的 web.config 中。它仅用于通过客户端的机器进行交谈。您所有的开发和服务器机器都应该具有相同的(至少在相同的环境中,.. 测试,实时等)
    【解决方案2】:

    我最终使用了这个:

    ASP.NET machineKey Generator

    【讨论】:

    • 苛刻 - -1 因为我在 7 月发布的链接现在返回 404。当我发布它时它起作用了,伙计
    • 既然真的对不起你,我在meta上问了这个问题:meta.stackexchange.com/questions/71259/…
    • 还不错,GvS。在您的元问题上+1,因为您很认真。也感谢 Software Monkey
    猜你喜欢
    • 2020-01-27
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2013-10-24
    • 2010-11-25
    相关资源
    最近更新 更多