我有一个asp .net应用程序。我有责任在我们的开发服务器中部署这段代码。我使用提供的包部署代码,安装成功。但是,当我试图查看登录页面时,会收到以下消息中的服务器错误
验证viewstate失败。如果此应用程序由网络场或群集承载,请确保配置指定相同的validationKey和验证算法。AutoGenerate不能在集群中使用。
如果我设置为enableviewstate和enableviewstatemac = false,那么我就能够运行代码并查看所有页面。我对观点状态很了解,但对这个领域没有深入的了解。有人能告诉我如何在不影响任何安全相关问题的情况下启用视图状态并仍然运行我的应用程序吗?我没有深入的知识使用验证键结合视图状态。
另外,这个应用程序目前正在生产,我从现在起负责维护。因此,我希望提供给我的包应该完美地工作,就像它在生产中工作一样,而不移除web.config中的视图状态。如能提供任何帮助,将不胜感激。
发布于 2012-03-13 09:36:25
如果您使用的是网络场--这是可能的,您应该在所有服务器中共享相同的validationKey (而不是每个服务器随机生成的)。查看这篇文章:起重机/档案/2004/05/12/130693.aspx
你可以写这样的东西:
<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>值取决于您选择的算法。可以使用随机字符串,也可以使用System.Security.*类生成自定义字符串。要了解更多细节,请查看MSDN上的这篇文章,它将更详细地解释所有这些内容。
https://stackoverflow.com/questions/9681429
复制相似问题