必威体育Betway必威体育官网
当前位置:首页 > IT技术

ViewState的使用与配置

时间:2019-11-06 11:44:29来源:IT技术作者:seo实验室小编阅读:78次「手机版」
 

viewstate



ViewState就是页面中的名字叫做__VIEWSTATE的隐藏控件,它使我们页面体积膨胀,不利于页面的seo优化;页面返送间都要携带更多的大量的数据,耗费更多的流量、延长响应时间。

一个页面生命周期大约可分为为:页请求、开始、初始化、加载、验证、回发事件处理、呈现、卸载这几个阶段。

OnInit 和 OnInitComplete方法之间有一个TrackViewSate的方法,它开启对视图状态更改的跟踪。也就是说,从这里开始,你才能使用viewstate(否则这些数据将不会被发送回页面),页面开始建立所有控件状态的一个快照

加载阶段OnPreload之前的LoadViewState方法,如果页面是回发的,他就会使用页面回发的viewstate,利用它记录的信息改变对应控件的属性,让你页面原状态复活。

如何禁用viewstate,这个简单,就是在web.config或页面上加一个enableviewstate设为false即可。

有点注意的是,你如果要只对页面的某个控件禁用viewstate,你可以对页面开启EnableViewState而只对这个控件设置EnableViewState禁用就OK了;

但是如果你只对某个控件使用viewstate,对页面EnableViewState禁用和控件EnableViewState开启是达不到效果的。

因为页面的EnableViewState=”false”会强制的把整个页面及其控件的禁用。

想要达到这种效果,我们需要用到另一个ViewStateMode的属性,我们要对页面设置EnableViewState=”true”,然后通过ViewStateMode=“disabled”来禁用页面的viewstate,而控件默认的ViewStateMode=“Inherit”,我们再去设置需要启用viewstate控件的ViewStateMode=“Enabled”来只启用某个控件使用viewstate。

首先一点是我们可以在web.config中设置pages的maxPageStatefieldLength来设置单个viewstate的最大值,以防止一些代理、防火墙或移动浏览器因为一个隐藏字段体积过大而阻止页面。

其次再说的,我们页面中看到的viewstate字符串,其实是没有加密的,只是经过了base64的编码,我们可以很easy的逆向出来看到原始的数据。不过还好的是,asp.net默认启用了一个基于散列码来保证viewstate不被修改:asp.net会根据消息验证代码 (MAC) 密钥去计算viewstate,得到一个散列码,然后把这个码添加到viewstate中,保存到页面的隐藏字段中;如果页面回发时,再次计算散列码与之前的比较,如果不匹配就拒绝接受此次回发。

默认情况下,这个散列的密钥是根据计算机的MAC地址计算的,如果在web场中,就可能会不能验证viewstate。这种环境下,我们可以通过EnableViewStateMac=”false”来禁用校验;另一种方法就是在多台服务器间配置同样的自己生成的密钥,然后分布在不同的计算机的machine.config中配置。

即使这样,我们viewstate还是很容易别人看到,如果不想这样,我们可以用ViewStateEncryptionMode来加密viewstate,它有三个值:Always,总是加密;Never,从不加密;Auto,仅在需要时加密,在呈现Html之前显式调用Page.RegisterrequiresViewStateEncryption()来启用加密,否则不加密。

文章最后发布于: 2017-04-06 16:03:09

相关阅读

使用Flvplayer.swf播放器播放 .flv 格式的视频

1.首先下载一个 Flvplayer.swf 播放器用于播放.flv格式的视频。 大家可以到我上传的所有资源中寻找这个资源“FlvplayerSwf.zip”

Marvelous Designer 破解后如何在不断网的条件下使用

使用过Marvelous Designer 7 Personal 的童鞋们应该有这样的体验,每次打开Marvelous前都需断开网络,否则软件在打开时如果系统正连

BeanUtils.copyProperties使用

Reference:https://blog.csdn.net/z15732621582/article/details/78767835 BeanUtils提供对Java反射和自省API的包装。其主要目的

excel表格如何使用时间函数

在excel表格中,经常会用到各种函数,那么时间函数具体的使用步骤是怎样的呢?下面就跟seo实验室小编一起来看看吧。excel表格使用时间

MacBook Air使用入门

话说: 没想到第一天,公司就给俺配备拉MacBook Air!超开心!有些小确幸,比预想来得快。我原本打算,积累个一年半载,自己买一台呢,哈哈。没想

分享到:

栏目导航

推荐阅读

热门阅读