跨服务器场中的服务器使用viewstate

时间:2009-04-24 17:26:31

标签: asp.net iis

使用Asp.net 2.0,Server1上生成的视图状态是否可以由同一服务器场中的server2使用?

5 个答案:

答案 0 :(得分:2)

是的,你可以。有几个选项可确保可以在服务器场中的每个服务器上解码视图状态。通常,您在每台服务器上手动设置machineKey,因此它们都是相同的。 But there are other options as well.

答案 1 :(得分:1)

只要篡改保护/ MAC关闭,我相信它可以。

答案 2 :(得分:1)

是的,web.config中的'machineKey'设置在每台服务器上都必须相同。

答案 3 :(得分:1)

在所有节点上使用identic machineKey。把它放在machine.config或web.config

答案 4 :(得分:0)

阅读这篇文章:How To: Configure MachineKey in ASP.NET 2.0

基本上,您使用此代码:

using System;
using System.Text;
using System.Security;
using System.Security.Cryptography;

class App {
  static void Main(string[] argv) {
    int len = 128;
    if (argv.Length > 0)
      len = int.Parse(argv[0]);
    byte[] buff = new byte[len/2];
    RNGCryptoServiceProvider rng = new 
                            RNGCryptoServiceProvider();
    rng.GetBytes(buff);
    StringBuilder sb = new StringBuilder(len);
    for (int i=0; i<buff.Length; i++)
      sb.Append(string.Format("{0:X2}", buff[i]));
    Console.WriteLine(sb);
  }
}

生成在您的服务器场中共享的计算机密钥。