首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.net ViewState - 即使在禁用时,也存在一些视图状态.为什么?

在ASP.NET中,ViewState是一种用于在客户端和服务器之间存储和传输页面控件状态的技术。即使在禁用ViewState时,也可能存在一些视图状态,这是因为ASP.NET页面中的某些控件可能会使用其他技术来存储状态。

例如,在ASP.NET中,有一种名为“ControlState”的技术,它可以用于在客户端和服务器之间存储和传输控件状态。ControlState与ViewState类似,但它不会在页面中呈现,因此不会被用户看到。ControlState通常用于存储控件的一些基本信息,例如数据源控件的连接字符串或数据绑定控件的数据源。

此外,在ASP.NET中还有一种名为“SessionState”的技术,它可以用于在客户端和服务器之间存储和传输页面状态。SessionState通常用于在多个页面之间共享数据,例如用户登录信息或购物车信息。

因此,即使ViewState被禁用,ASP.NET页面中的某些控件可能仍然会使用其他技术来存储状态。这些技术包括ControlState和SessionState,它们可以在客户端和服务器之间存储和传输页面状态,而无需依赖ViewState。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET ViewState之详解

今天我们来了解一下ASP.NETViewState的作用。 ViewState=视图状态ViewState的通用解释就是:是 ASP.NET 页中的存储库,可以存储必须在回发过程中保留的值。...页框架使用视图状态各个回发之间保存控件设置。...各个回发之间保存值,而不将这些值存储会话状态或用户配置文件中,将信息存储视图状态中,这样在下次将该页发送到服务器时,代码便可以页加载事件过程中访问这些信息。...ASP.NET 页框架使用视图状态往返过程之间保存页和控件值。呈现页的 HTML 时,必须在回发过程中保留的页和值的当前状态将被序列化为 Base64 编码字符串。...ViewState不仅如此,可用来存在我们自己的变量。

1.5K30

Asp.net页面生命周期

注意此时只是初始化了服务器控件和页面的框架和声明时设置的属性,而viewstate等还没有恢复,存在回传值(但可以通过Request.Form来获取有效控件的回传值,只是还没复制到控件实例中。...(这里的ControlState具体用法有待研究:2012/5/25补充:ControlState是一种特殊的ViewState即使页面或网站禁用了ViewState,ControlState依然起作用...,当然可以第18步中设置;该方法执行前会先执行页面和控件的EnsureChildControl方法和执行设置了DataSourceID属性的控件的DataBind事件。...如果您需要存储大量的数据项,可以打开视图状态分块,这样会自动将数据分割到多个隐藏域。 ASP.NET框架提供了MaxPageStateFieldLength属性,用来获取或设置页状态字段的最大长度。...,并且每个字段的值都小于MaxPageStateFieldLength属性中指定的大小;而如果MaxPageStateFieldLength属性设置为负数(默认值),则表示不应将视图状态字段分成多个块区

2.4K80
  • ASP.NET保持用户状态的九种选择

    本文将介绍了上述的技术,给出了什么时候使用它们的一些指导。尽管这些技术中有些传统ASP中已经存在,但是有了.NET框架组件后该在什么时候使用它们发生了变化。...尽管ASP.NET 中Application依然作为数据容器存在,但是有其它一些更适合以前保存在传统ASP应用程序的Application集合中的数据的对象。...默认情况下(性能最好的情况),Sessions数据仍然保存在本地Web服务器的内存中,但是ASP.NET支持使用外部状态服务器或数据库管理Sessions数据。...你需要记住的是即使没有使用,Sessionss会有应用程序开销。把Sessionss状态设置为只读的可以优化只需要读而不需要写数据的页面。...你可以通过浏览器中查看的HTML源并检查隐藏窗体字段__VIEWSTATE来确定某个给定的ASP.NET页面ViewState的总共大小。

    1.9K20

    Validation of viewstate MAC failed 解决办法

    在这样的环境下,如果Asp.Net程序执行时碰到如下中文错误: “验证视图状态 MAC 失败。...按照MSDN的标准说法:“对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。”...也就是说Asp.Net的很多加密,都是依赖于machineKey的设置,例如Forms 身份验证 Cookie、ViewState的加密。...如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式,每台服务器上的machinekey值不一致,就导致加密出来的结果不一致,不能共享验证和ViewState...希望广大朋友遇到MAC验证视图状态失败的问题的时候,不要马上把EnableViewStateMac="false"设置成这样就完事了。

    1.7K100

    .NET工作准备--04ASP.NET

    *简述ViewState功能和实现机制 一般来说,构建BS结构系统最大难点在于如何保存访问的状态,和CS结构系统可以把用户数据保存在客户的内存和存储设备上不同,BS结构的系统没有得到用 户的任何授权,...而把每一个访问者的数据保存在服务器代价太大,asp.net对这个问题的解决方法就是页面状态的保存:ViewState机制(Java 中的Page); Asp.net服务器空间从Control继承名为...ViewState的属性,这使它可以更容易的加入状态管理。...); asp.net中有些控件本身实现类保存数据的功能,而不依靠ViewState.例如TextBox,即使ViewState关闭,数据不会丢失;ViewState可以保存任何可序列化的对象,而不仅仅限于控件的状态数据....保证重启Web应用程序后仍能保留会话状态,并可使会话状态应用于多个Web服务器; sqlserver:() 安装状态数据库systemroot\Microsoft.Net\Framework\

    2K50

    ASP.Net Web Page深入探讨

    只不过ASP.NET的框架看起来先进一点,不过JSP发展,似乎出现了类似ASP.NET的框架。...我们使用代码绑定的时候,设计页面拖一个控件,然后切换到代码视图,就可以直接在Page_Load中使用这个控件了,既然控件是子类中产生的,那为什么父类中可以直接使用呢?...Init 事件(OnInit 方法) 加载视图状态 在此阶段结束时,就会自动填充控件的 ViewState 属性,详见维护控件中的状态中的介绍。...2、 加载视图状态 这是个比较重要的方法,我们知道,对于每次请求,实际上是由不同的页面类实例来处理的,为了保证两次请求间的状态ASP.Net使用了ViewState,关于ViewState的描述,请参考本人的另一篇文章...8、 保存状态 这个阶段是针对加载状态的,我们多次提到,请求之间是不同的实例处理,所以我们需要把本次的页面和控件的状态保存起来,这个阶段就是把状态写入ViewState的阶段。

    2.1K70

    四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)

    : 因为这些控件给页面带来了大量的 viewstate <input type="hidden" name="____<em>VIEWSTATE</em>" id="____<em>VIEWSTATE</em>" value= 这就是页面状态...一个页面里可能存在两种状态 控件状态,视图状态 page类是 LoadPageStateFromPersistenceMedium() SavePageStateToPersistenceMedium...() 存取页面状态的 这两个方法都是可以重写的 他们可以把状态信息存储别的媒介中 我们这里通过重写PageStatePersister属性 来实现自己的状态存取逻辑 我们为了压缩viewstate...summary> ///GZipCompress 的摘要说明 ///  public class GZipCompress {     //LosFormatter序列化web窗体页的视图状态...string.IsNullOrEmpty(postbackstate))         {             //解压,反序列化             //asp.netviewstate包括控件状态视图状态

    37410

    Asp.NET中常用的一些优化性能的方法

    可以针对整个应用程序或者页面禁用会话状态: l         禁用页面的会话状态 l         禁用应用程序的会话状态 应用程序的Web.Config文件的sessionstate配置节中,将...3:不使用不必要的ViewState 默认情况下,ASP.Net对所有的Server Control都启用了ViewState视图状态)。...但ViewState需要在客户端保存一些信息,这会造成性能的消耗。当必须使用Server Control时,可以考虑禁止ViewState。...为此,可以页面前面写明: 6:使用存储过程完成数据访问 7:只读数据访问不要使用DataSet。 DataSet作为一个功能强大的、支持离线的数据库,其对性能的开销相对较大。...n         片断缓冲 ASP.net中,除了页面范围内使用缓冲,还可以针对User Control使用Output Cache参数实现对用户控件的缓冲。

    72930

    C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService(二)

    ASP.NETASP.NET 引入了一些性能优化和可伸缩性的特性,如先进的请求处理、缓存机制、视图状态管理等,可以更好地处理大规模应用程序的需求。...ASP.NETASP.NET 提供了更强大的状态管理机制,包括视图状态(View State)、Session 状态、Application 状态等。这些机制更灵活且可扩展。...5、ViewState概念: ViewStateASP.NET 页面用于客户端保持页面状态的机制,以便在 postback 时恢复页面上的控件状态。...ViewState 主要用于存储控件的状态信息,以便在页面回发(PostBack)时能够还原这些控件的状态。例如,文本框中输入的文本、复选框的选中状态等信息都可以保存在 ViewState 中。...3)对于一些控件,例如 GridView、DropDownList 等,即使 aspx 页面中设置了 EnableViewState="false",它们可能仍然会使用 ViewState 以维护其状态

    26910

    ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

    基于Http协议的无状态特性,我们ASP.Net的开发中会经常碰到这种情况:用户上一次提交的东西,下次再提交时服务器就不记得了。很多时候,我们感到很不解?...而伟大的Microsoft还在ASP.Net中帮我们封装了ViewState,以至于我们WebForm中进行PostBack操作时,都感觉不到服务器是无状态的。...等,耗费的服务器资源较少,算是ViewState的优点之一吧),当你关闭某个aspx文件后,那么属于这个aspx的ViewState也就不存在了。...这里我们可以通过下图来温习一下ViewState的流程,ViewState存放着“事故现场”,下次可以方便地“还原现场”,将无状态的Http模拟成了有状态的,让广大的初学者了解不到无状态的这个特性。...PS:为什么禁用ViewState之后,页面源代码中仍然有_VIEWSTATE的隐藏域?

    1.8K30

    ASP.Net ViewState的实现

    Asp.Net中,有一个应用程序池,其中保存了数个(或数十个)应用程序实例,每一次请求都会从池中取一个实例来处理请求,在请求完毕之前,这个实例不会接受其他请求;这就出现一个问题,同一时间可能存在多个应用程序...2、Session  Asp.Net内部,有一个StateApplication来管理Session,实际上就是一个辅助进程,处理Session到期、创建的特殊请求,收到每一次请求的时候,辅助进程就会调用状态服务器...Session的状态服务器有多种,目前Asp.Net内部实现了三种:       1) InProcStateClientManager 这是传统的Session保存方式,但是还是有些细微差别      ...就是帮我们系统的实现了保存控件状态的功能,服务器端控件能够多次请求间保存状态全靠它。    ...;所以ViewState安全性上面还是比较差,建议不要 存放比较机密和敏感的信息,尽管ViewState可以加密,但是由于ViewState要保存在客户端,天生就有安全性的隐患。

    1K30

    神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测

    近日研究人员发现,在过去一年间,一个复杂的且极可能由国家民族支持的威胁行为者一直利用面向公众的ASP.NET应用程序中的反序列漏洞来部署无文件恶意软件,从而危害一些主要的公共和私营组织。...ASP.NET有一种称为“VIEWSTATE”的机制,框架使用它来存储POST请求期间发送到客户端时网页的状态和控件。它被存储成名为“ _VIEWSTATE”的隐藏输入字段。...当客户端执行POST操作并将页面发送回服务器时,VIEWSTATE被反序列化和验证。ASP.NET提供了一些安全性和完整性检查机制来确保序列化数据有效,但它们的正确使用需要归结于开发人员的实现。...例如,即使新版本的ASP.NET支持 VIEWSTATE 完整性检查和加密,但如果加密和验证密钥被盗或泄露,它们可被用于重新感染服务器或感染同一集群中托管同一应用程序的其他服务器,因为密钥是共享的。...研究人员表示, “如果您的 Web 应用程序使用ASP.NET会话状态,请确保只能从合法的网络位置访问数据库。

    1.8K40

    viewstate解密

    ,保存在Application中的数据是全局有效的;Asp.Net中,有一个应用程序池,其中保存了数个(或数十个)应用程序实例,每一次请求都会从池中取一个实例来处理请求,在请求完毕之前,这个实例不会接受其他请求...2、Session Asp.Net内部,有一个StateApplication来管理Session,实际上就是一个辅助进程,处理Session到期、创建的特殊请求,收到每一次请求的时候,辅助进程就会调用状态服务器...Session的状态服务器有多种,目前Asp.Net内部实现了三种: 1) InProcStateClientManager 这是传统的Session保存方式,但是还是有些细微差别...就是帮我们系统的实现了保存控件状态的功能,服务器端控件能够多次请求间保存状态全靠它。...;所以ViewState安全性上面还是比较差,建议不要 存放比较机密和敏感的信息,尽管ViewState可以加密,但是由于ViewState要保存在客户端,天生就有安全性的隐患。

    1K30

    ASP.NET MVC 与 ASP.NET Web Form 的介绍与区别

    2 ASP.NET Webform ASP.NET 框架下的一种基于事件模型的开发模式,有开发速度快,容易上手等特点。...3 两者的区别和各自优缺点 ASP.NET 作为微软的Web程序开发框架,MVC与Webform 是不同时期的开发模式, ASP.NET 运行处理原理 基本一致....Webform 优点:可以基于事件模型开发,类似Winform中,所有请求使用ViewState和页面生命周期来维持控件状态,同时控件的开发,加快了开发速度,整体Webform的内部封装比较高。...同时控件的ViewState 增加了网站服务器的传输量,一定程度上影响程序的效率。 MVC 优点 :易于扩展,易于单元测试,易于测试驱动开发。MVC中的一个路由的存在,可以做一些链接伪静态的处理。...:调用具体的视图(.cshtml)编译成页面类,调用页面类的Excute()方法,将所有的代码执行后写入到Response中 4.2如果是一个非视图类型,直接将结果写入到Response中即可

    2.6K41

    asp.net mvc实战-学习笔记(1)

    “HellowWorld”示例 4 强类型视图 5 路由基础 微软平台上开发web项目的时间越长你越能体会到如下的痛苦 九十年代开发人员用服务器上的可执行程序创建动态网站 这些程序(CGI在当时是一个非常普遍的技术...必须在整个页面的生命周期中找到合适的事件来注册自己的处理方法 ViewState虽然在理论上解决了应用程序的复杂性 但是使得简单的页面超过了100KB 也许ASP.NET最大的过错就是system.web...命名空间中的所有东西的耦合过紧了 code-behind文件中没有任何希望做单元测试 page_load事件中有几种树来打印 虽然早前的asp,net版本存在一些缺点 但是asp.net和.net...mvc框架设计的目的是为了简化web form的复杂性 并保留asp.net管道的灵活性 Asp.net request管道的优势没有改变 Asp.net mvc通过模型,视图,控制器的设计模式来支持...asp.net应用程序 控制逻辑代码被封装在一个类里以减轻依赖性 视图就是只有HTML代码和controller提供的对象的页面, 回发事件生命周期不负存在 ViewState不是必须的了 本章中

    51720

    【译】ASP.NET应用程序和页面生命周期

    正如我们所知,应用程序域隔离部署同一台IIS服务器上的两个不同的Web应用程序。因此,即使其中一个应用程序域出现了错误,不会影响其他应用程序域的正常运作。...这样可以使应用程序域之间实现深度隔离,所以:即使进程中的某个应用程序域出现错误,不会影响其他应用程序域的正常运作。 更多关于AppDomain的介绍,请自行搜索,这里不再赘述。...如果你的系统中存在一个global.asax文件,那么这个global.asax文件的对象会被创建。但是,需要注意的是你的global.asax需要继承自HttpApplication类。...第二步(H:HttpHandler):一旦以上6个事件被触发后,ASP.NET引擎就将会调用 ProcessRequest 事件,即使你已经项目中实现了 HttpHandler。...每一个ASP.NET页都有2个部分:一个是浏览器中进行显示的部分,它包含了HTML标签、viewstate形式的隐藏域 以及 HTML input中的数据。

    1.1K30

    ASP.NET MVC 模式的优缺点「建议收藏」

    3、自由操控HTML:ASP.NET MVC 中已经不使用控件,回归到网页基本元素HTML、CSS和JavaScript,因此灵活性大幅度增加。...7、移动设备支持度:ASP.NET MVC 4以后的版本针对移动网站增加了许多功能,对于变化更多的移动设备能有很好的支持。...8、开发简单:不再有页面生命周期,回归到无状态的网页,经由HTTP动词来处理不同情况的操作。...9、网页流量降低:ViewState不再存在,并且内建CSS、JS捆绑与最小化机制与各种各样的Helper,可以有效地降低数据传输量。...视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。   3、视图对模型数据的低效率访问。

    1.3K30

    ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

    每一个ASP.NET Page页都有2个部分:一个部分是浏览器中进行显示的部分,它包含了HTML标签、viewstate形式的隐藏域 以及 HTML input中的数据。...现在这些HTML控件会作为ASP.NET控件存活在服务器上,ASP.NET会触发一系列的事件,我们可以在这些事件中注入自定义逻辑代码。...因此,这里也就解释了为什么aspx中要访问的方法必须是public和protected的访问修饰符才可以。 ? ?   ...那么,我们Page中拖的那些runat="server"的服务器控件,又是保存在哪里的呢?   ...原来,Control父类中,有一个Controls的属性,它是一个控件的集合:Page中的所有控件,都会存在于这个集合中。 ?

    1.4K20
    领券