4

我在网络农场环境中使用HMACSHA256进行消息身份验证。

在网络农场中,每台机器都有相同的机器密钥,因此 ViewState 将跨机器工作,但是,我需要进行 HMAC 消息身份验证,这将在机器上工作,所以我认为由于所有机器都使用相同的机器密钥,所以应该是一种从中派生密钥以用作 HMAC 密钥的方法。

我注意到从 .NET 4.0 开始有MachineKey类,但是,我坚持使用.NET 3.5,这对我来说是不可用的。

有没有办法在ASP.NET 3.5环境中使用在所有机器上都相同的排序键而不生成我自己的排序键?

编辑

我实际上并不需要机器密钥本身,只需要从机器密钥(或等效项)派生的验证密钥。

4

1 回答 1

7

您可以从 web.config 中读取机器密钥。此链接显示了如何执行此操作: http: //aspnetresources.com/blog/how_to_read_auto_generated_machinekey

请记住,文章的作者会读取生成的机器密钥——因此您必须对代码进行一些更改。

我只是稍微阅读了这篇文章,发现它使用反射,如果您将机器密钥存储在 web.config 中,这不是必需的。本质上它分解为这一行:

MachineKeySection section = (MachineKeySection) 
  ConfigurationManager.GetSection ("system.web/machineKey");
于 2013-01-03T14:57:04.993 回答