validationKey

将会话状态移到一台远程机器上,并将所有的web服务器指向该该机器???,这对构建与服务器场兼容的web应用程序非常关键。
在web场中配置ASP.NET应用程序:
每台服务器的Machine.config文件包含一个machineKey元素,用来将值指派给加密密钥对:

<system.web>
<machineKey validation="MD5" validationKey="AutoGenerate" decryptionKey="AutoGenerate">
</machineKey>
</system.web>

当向视图状态值和窗体身份验证Cookie中添加杂乱信息,以防止重要信息被篡改时,ASP.NET使用validationKey来生成杂乱信息。
如果保护级别足够高,ASP.NET甚至会使用decryptionKey来加密视图状态和验证Cookie。
“AutoGenerate”告诉ASP.NET随机生成一个键并把它保存到主机的本地安全权限(LSA)中。
随机生成的键对于单服务器安装很适用,但是在web场中,每个服务器必须使用相同的键,否则在一台机器上加密的值不能在另一台机器上解密。
在web场中配置ASP.NET应用程序之前,应该对web场中的每台服务器进行如下配置修改。这种修改可以在Machine.config或者本地Web.config中进行:
将machineKey的validationKey属性设置为validationgKey="mmmmm",这里的mmmmm代表40到128字符之间的一个随机值。值越长,越具有保密性。
将machineKey的decryptionKey属性设置为decryptionKey="nnnnnn",这里的nnnnn代表16到48字符之间的一个随机值。
这后一种方法提供的加密性更好,但它只能在支持128位加密的服务器上使用。
下面是Web.config文件的示例,如果把它用在应用程序安装的所有服务器上,会将每台服务器配置为使用相同的验证和加密键:
<machineKey validationKey="FAF4554FD5D45SFA45SDF45AS4DF5A4S5DFA45SFD45AFD4F5ASD2F1AS5ASD1F5S" 
            decryptionKey
="ADFSFASD4F5A4SD5F4AS5D4F5ADFASD5DS45FA4SD5FA4S5DF5S"/>
指定的验证密钥具有无效的十六进制字符,:)看来都要是十六进制的字符。

posted on 2007-11-10 17:24  simhare  阅读(978)  评论(0编辑  收藏  举报

导航