我在web-farm环境中使用HMACSHA256进行消息验证。
在web-farm中,每台机器都有相同的机器密钥,所以ViewState将跨机器工作,然而,我需要做HMAC消息认证,这将跨机器工作,所以我认为,既然所有机器使用相同的机器密钥,应该有一种方法从中获得一个密钥作为HMAC密钥。
我注意到在。net 4.0中有了MachineKey类,然而,我还是坚持使用。. NET 3.5,这对我来说是不可用的
是否有一种方法可以在所有机器上获得相同的排序键,而无需生成自己的键,用于ASP。. NET 3.5环境?
<标题>编辑我实际上不需要机器密钥本身,只需要从机器密钥派生的验证密钥(或等效的)。
标题>您可以从web.config中读取机器密钥。这个链接展示了如何这样做:http://aspnetresources.com/blog/how_to_read_auto_generated_machinekey
请记住,本文的作者读取生成的机器密钥-因此您必须在代码中做一些更改。
我只是稍微读了一下这篇文章,看到它使用了反射,这是没有必要的,如果你将机器密钥存储在web.config中。从本质上讲,它分解成这一行:
MachineKeySection section = (MachineKeySection)
ConfigurationManager.GetSection ("system.web/machineKey");