当前位置:首页 > 技术交流 > 随心记 > 正文内容

session 与 ViewState 的区别

纵横四海2年前 (2022-03-09)随心记1133

session 是存在服务器端,大量的使用session将导致服务器负担加重.而viewstate由于只是将数据存入到页面隐藏控件里,不再占用服务器资源,因此, 我们可以将一些需要服务器"记住"的变量和对象保存到viewstate里面.

而sesson则只应该应用在需要跨页面且与每个访问用户相关的变量和对象存储上. 另外session在默认情况下20分钟就过期,而viewstate则永远不会过期.

任何事物都有两面性, 使用viewstate会增加页面html的输出量,占用更多的带宽,这一点是需要我们慎重考虑的. 另外, 由于所有的viewstate都是存储在一个隐藏域里面,用户可以很容易的通过查看源码来看到这个经过base64编码的值.然后再经过转换就可以获取你存储其中的对象和变量值.

其实,对于viewstate的安全性问题,asp.net还给我们提供了更多的选择.

一般如果要保护viewstate有两种方式: 一种是防篡改,一种是加密. 一说到防篡改,我们就想起了使用散列代码.

没错, 我们可以在页面顶部加入如下代码:

Page EnableViewStateMAC=true


版权声明:本文由纵横四海博客发布,如需转载请注明出处。

部分资源整理自互联网,如侵权请联系站长删除!

本文链接:https://www.fxkgg.com/post/21.html

分享给朋友:

相关文章

堆栈的关系、原理、区别以及如何按照自己的方式工作

堆栈的关系、原理、区别以及如何按照自己的方式工作

本文是我自己所整理,可能存在错误或争议,欢迎评论指正或讨论!堆(heap)    栈(stack)虽然在.net framework不需要内存管理和垃圾回收,但...

任凭岁月漫漶,永不忘 19371213【第八个国家公祭日】

任凭岁月漫漶,永不忘 19371213【第八个国家公祭日】

据大量网友发现,今天凌晨打开京东和淘宝 、闲鱼、华为商城等 App 首页屏幕都变成了黑白色,显示缅怀悼念。因为今天 12 月 13 日是国家公祭日。人民日报报道,1937 年的今天,侵华日军攻占南京,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。