我在.NET 4.0.30319开发的大型webapp上工作。我们将ViewState
关闭,将页面EnableViewState
的属性设置为false;由于我没有加密ViewState
,因此引发了一个安全漏洞。
我意识到有些数据存储在ViewState
中,只是base64编码。它只有50个字节,包含一个数字(看起来像一个Id)和一个包含单词control的字符串。
谁存储此数据,是ASP .NET默认创建的ViewState
虽然已关闭?由于EnableViewState
设置为false,因此ViewState
中不应存储与应用程序相关的数据,我是对的吗?
答案 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