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

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

这是基于性能的最佳选择

有帮助吗?

解决方案

如果 需要在客户端脚本中引用它,请查看状态。如果你这样做是一个隐藏的字段。

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

修改

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

默认情况下,Viewstate未加密,它存储为Base-64编码。它可以很容易地解码,因此使用Viewstate是因为它默认是加密的无效。它比纯文本更好,但对任何有能力谷歌“解密Viewstate”的人都没有。或“解码视图状态”。

所以不要依赖Viewstate来保护客户端代码中的隐藏信息。

此处的文章介绍了如何对其进行加密正常。 (但也警告性能问题)。

其他提示

由于ViewState本身存储在隐藏的输入中,因此并不重要。使用哪个更容易。如果由我决定,我会选择ViewState,因为ASP.NET运行时将为您处理对象的序列化和反序列化。

我喜欢ViewState - 它更难被黑客攻击 - 一个讨厌的人可以轻易地将您的页面提交给隐藏字段中的错误数据

您想将其存储在视图状态中。隐藏字段可以在浏览器上更新,因为它们用于存储可以在客户端操作的信息。视图状态将由asp.net验证以防止篡改,您必须自己使用隐藏字段。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top