ASP.NET页面安全与编译详解
1. ViewState加密模式与兼容性
ViewStateEncryptionMode并不总是能保证加密一定会发生。如果页面通过将ViewStateEncryptionMode设置为Never来明确关闭它,无论控件是否请求ViewState加密,页面都不会强制进行加密。此时,仅会应用 <machineKey /> 验证属性中指定的保护措施。只有当模式设置为Auto,且没有采取其他步骤关闭页面的ViewState加密时,ViewStateEncryptionMode与控件的交互才能使页面更安全。
ASP.NET 3.5 SP1在 <machineKey /> 配置元素中引入了一个新属性 compatibilityMode ,该属性有两个可能的值:Framework20SP1或Framework20SP2,默认值为Framework20SP1,以保持与ASP.NET 2.0和3.5版本的兼容性。但将 compatibilityMode 属性切换到Framework20SP2时,在开启ViewState加密的情况下,ViewState和其他页面变量的加密/编码方式会有细微变化。这会导致在运行旧版本ASP.NET的Web服务器上无法解码以该模式运行生成的ViewState。因此,要使用新的 compatibilityMode 属性并从其引入的细微变化中受益,运行使用该属性应用程序的Web服务器必须安装ASP.NET 3.5 SP1。
2. 页面预编译
从AS
超级会员免费看
订阅专栏 解锁全文
414

被折叠的 条评论
为什么被折叠?



