< pages enableViewState =“false”enableViewStateMac =“true”viewStateEncryptionMode =“Always”>
我甚至添加了以下(由machine key generater生成)到machine.config,仍然加密在我的测试服务器上的viewstate罚款:
< machineKey validationKey =“002 ...”decryptKey =“D90E ...”validation =“SHA1”decrypt =“AES”/>
我的非测试环境似乎没有提取上述更改,因为我可以随时使用以上设置将viewstate解码为纯文本。我做任何改变后,我一直都是iisreset。
有关我的非测试网络服务器的一些信息:
>网络农场/负载平衡(但现在只有一台服务器进行测试)
> sql会话状态(machine.config中的machinekey最初需要设置)
> machine.config:deployment retail =“true”
任何人都可以建议在哪里寻找可能会干扰asp.net viewstate加密的其他设置?
编辑:现在在我的iis测试服务器上,我无法撤销viewStateEncryptionMode设置,因为它正在加密viewstate,即使我将其设置为“从不”,我的其他网站都没有显示这个设置。我可以在哪里看看这个属性被覆盖的地方?有没有任何缓存存储这个设置需要清除,除了我iisreset /停止www服务/触摸machine.config会做什么?
编辑最后:在学习配置文件几天后,我放弃了并通过代码实现了这一点。我已经有一个附加到页面事件的安全模块,所以在Page_Load我添加了:Page.RegisterRequiresViewStateEncryption();
我真的很想知道什么是阻止这种设置在IIS6 immediatley上被拾起。当我在本地运行cassini时,如果我通过页面节点将viewStateEncryptionMode设置为“Always”,我将立即看到它对viewstate进行编码,并使用id =“__ VIEWSTATEENCRYPTED”渲染另外的隐藏字段。当我把它设置为“从不”我会马上看到加密关闭。如果我对我的IIS6托管网站上的网站进行了相同的确切更改,那么它将不会立即生效,但如果我允许该设置保留在那里,最终将会停留。我会停止/启动www服务,重置iis,清除ASPNET临时缓存,但我不知道还有什么尝试?希望这个帖子可以ROT一段时间,有人将来会看到我经历的同样的行为,我们可以进一步弄清楚!
解决方法
祝你好运。
乙