隐藏字段vs viewstate

时间:2011-01-23 09:26:47

标签: asp.net ajax performance security viewstate

使用

时有什么区别
  • 隐藏字段与视图状态?
  • 何时使用每一个?
  • 哪一个更安全?
  • 哪个性能更好?
  • 有哪些替代方案?

3 个答案:

答案 0 :(得分:8)

ViewState存储在隐藏字段中,它包含有关整个页面的信息。它也可以加密。因为视图状态总是在执行回发时发送到代码隐藏,所以它总是得到值非常实用。缺点是,如果你开始在其中放入大量信息并且性能可能开始受损,它可能变得非常大。例如,在某些AJAX请求中,您只想向服务器发送一些小信息,如果您使用UpdatePanels,则将发送整个ViewState,并且它将包含不必要的信息。

答案 1 :(得分:3)

隐藏字段可以在页面HTML源中查看,而ViewState至少可以混淆,并且根据您的.net版本,可以加密到不同程度。

asp.net viewstate encryption

隐藏字段的性能会更好但不提供安全性,如果可以操作后期数据,则更容易更改ViewState。

会话变量是这些变量的一个很好的替代方案。

答案 2 :(得分:-1)

ViewState内部使用隐藏字段。它由ASP.NET Engine管理,默认情况下已加密。

另一方面,通过隐藏的字段控制,您可以管理存储在其中的内容。默认情况下,它未加密。

表现明智,两者都是一样的。但是,我觉得ViewState更安全。 ASP.NET维护其哈希以防止/识别对客户端的任何篡改。

您还可以使用会话来存储数据。