谁在asp.net中创建了viewstate

时间:2017-09-25 19:57:27

标签: asp.net viewstate

我在.NET 4.0.30319开发的大型webapp上工作。我们将ViewState关闭,将页面EnableViewState的属性设置为false;由于我没有加密ViewState,因此引发了一个安全漏洞。

我意识到有些数据存储在ViewState中,只是base64编码。它只有50个字节,包含一个数字(看起来像一个Id)和一个包含单词control的字符串。

谁存储此数据,是ASP .NET默认创建的ViewState虽然已关闭?由于EnableViewState设置为false,因此ViewState中不应存储与应用程序相关的数据,我是对的吗?

1 个答案:

答案 0 :(得分:0)

ViewState是一个ASP.net或服务器端对象(实体),因此它遵循它在服务器上存在(SAVED)但是来回发送(在post-Backs上)。

您的问题并没有明确说明您要通过禁用ViewState来实现的目标是什么,但一般来说,您这样做主要是为了解决性能问题。如果那不是你的目标,我会重新考虑启用它。正如您可能已经收集的那样,默认情况下会在页面和控件级别启用ViewState。

这里有一些有用的MSDN链接:

https://msdn.microsoft.com/en-us/library/ms972976.aspx

https://msdn.microsoft.com/en-us/library/system.web.ui.control.enableviewstate(v=vs.110).aspx