哪个最好使用ViewState或hiddenfield

Vij*_*dra 9 c# asp.net viewstate hiddenfield

我有一个页面,我想在后面保持对象之间的对象的价值.我正在考虑两种方法来维护对象的价值

  1. 将值存储在View Sate中
  2. 将值存储在隐藏字段中

这是基于性能的最佳选择

Dav*_*vid 10

Viewstate,如果您不需要在客户端脚本中引用它.如果你这样做的隐藏字段.

还要考虑如果数据是敏感的,Viewstate默认是加密的,而隐藏字段默认情况下将其存储为知道如何查看源的任何人都可以看到的纯文本.

编辑

根据@Andrew Hare关于他自己答案的说明,我正在编辑这个.值得注意的是,这是一个非常重要的区别.根据我的疏忽,我讨厌有人认为他们使用Viewstate是"安全的".

Viewstate默认不加密,它存储为Base-64编码.它可以很容易地解码,因此使用Viewstate是因为它默认是加密的无效.它比纯文本更好,但对任何能够谷歌"解密Viewstate"或"解码Viewstate"的人都没有.

因此,不要依赖Viewstate来保护客户端代码中的隐藏信息.

这里的一篇文章讲述了如何正确加密它.(但也警告性能问题).