通过安全性和性能感知将整个dataTable存储在Viewstate中是否合适?

时间:2011-12-13 11:08:33

标签: c# asp.net ado.net

正如问题所述。 这是一个将数据存储在视图状态的良好实践 如果不是那么我需要为性能和安全措施做些什么。 /> 当我选择安全性和性能时,我缺乏什么,反之亦然。

我想做什么。通过DataTable(Source)在Gridview中显示数据。在postBacks中。我想保存我的Query Cost.Load数据来自视图状态或Cache对象,但不是数据库。

3 个答案:

答案 0 :(得分:2)

这不是一个好的做法,在视图状态中存储数据表会使您的页面变大,从而减慢用户和服务器的处理速度。

如果您需要保留数据表,可以将其添加到缓存中或每次只重新查询

答案 1 :(得分:1)

通常,视图状态应保持较小。您无法将数据表存储在缓存或会话中(不太好)。 如果您的视图状态是加密的,则说它不安全取决于。

答案 2 :(得分:1)

DataTable是一个非常大的对象 - 将其存储在ViewState中会使其膨胀并增加每个请求的下载时间。在这方面不利于表现。

在安全性方面 - ViewState可以在客户端解密,因此DataTable不安全。

你需要做什么取决于你想要达到的目标(你在问题中没有表明)。

您可能希望将服务器端存储在CacheSession对象中,然后从数据存储中重新获取它。这取决于要求。