我在web.config 的<system.web>里添加了一个
<machineKey validationKey="FE904A3264FAA1460560FB5B4C1712D52EFD9B096E9D7A08CA50ED7718CDE1EF59B4C74E06BF60265356D5A56B309CAD96772F0A7FB8A8FD64A095A99359D4E6" decryptionKey="8FF5EEB96E96894E33FDF51218F9587F606285A6FDB95FEA" validation="SHA1"/>我本想和另一个站点做一个SSO的,但运行时就出现如下错误:Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 请问各位:machineKey这个节应该如何修改??

解决方案 »

  1.   

    在两台或者两台以上的服务器上共享 ViewState. 也就是生成ViewState 与读取它的不是同一台服务器。那就不得不使用 machineKey 中的validationKey 字段。并且在服务器间要使用相同的Key 。如:<machineKey validation="SHA1" validationKey=" 
    F3690E7A3143C185AB1089616A8B4D81FD55DD7A69EEAA3B32A6AE813ECEECD28DEA66A
    23BEE42193729BD48595EBAFE2C2E765BE77E006330BC3B1392D7C73F" />另看此http://www.dolinker.com/blog/sam/103/article.aspx
      

  2.   

    我的是在同一台机器上有两个网站,只是访问的端口不同,这两个网站都有同样的cklogin.asp登陆页面和web.config,Global.asax.但就在web.config里加machineKey节时,打开cklogin.aspx就会出错.