asp.net SessionState和ViewState有什么区别?

rwqw0loc  于 2023-06-25  发布在  .NET
关注(0)|答案(6)|浏览(113)

ASP.NET中的SessionState和ViewState有什么区别?

jmp7cifd

jmp7cifd1#

会话状态包含与服务器的特定会话(通过特定客户端/浏览器/机器)有关的信息。这是一种跟踪用户在网站上做什么的方法。跨越多个页面在无状态的网络中。例如特定用户的购物车的内容是会话数据。Cookie可用于会话状态。

另一方面,视图状态是特定于特定网页的信息。它存储在一个隐藏字段中,因此用户看不到它。它用来维持用户的错觉,即页面记得他上次在上面做了什么--不要在他每次回复的时候给予他一个干净的页面。Check this page for more

qyuhtwio

qyuhtwio2#

会话状态保存在服务器上,ViewState保存在页面中。
会话状态通常在用户处于不活动状态一段时间后被清除(在请求cookie中没有出现包含会话ID的请求)。
视图状态将在后续回发时回发到隐藏字段中。

x3naxklr

x3naxklr3#

SessionState

  • 可以在内存中持久化,这使它成为一个快速的解决方案。这意味着状态不能在Web场/Web花园中共享。
  • 可以保存在数据库中,对Web Farms / Web Gardens很有用。
  • 会话终止时清除-通常在20分钟不活动后。
    ViewState
  • 在服务器和客户端之间来回发送,占用带宽。
  • 没有失效日期。
  • 在Web场/ Web花园中很有用
bhmjp9jg

bhmjp9jg4#

**用法:**如果要将想要访问的信息存储在不同的网页上,可以使用SessionState

如果要存储要从同一页访问的信息,则可以使用Viewstate

存储Viewstate存储在页面本身中(以加密文本形式),而Sessionstate存储在服务器中。

SessionState将在以下条件下清除
1.由程控仪清除
1.用户清除
1.超时

ajsxfq5m

ajsxfq5m5#

会话主要用于存储用户特定数据[会话特定数据]。在会话的情况下,您可以在整个会话中使用该值,直到会话到期或用户放弃会话。Viewstate是仅在使用它的页面中具有作用域的数据类型。除非将视图状态值传输到所需的页面,否则无法让其他页面访问这些值。同样,在viewstate的情况下,所有服务器端控件数据都作为__Viewstate中的键值对传输到服务器,并在回发发生时传输回并呈现给客户端中的相应控件。

jtw3ybtb

jtw3ybtb6#

View State是一种维护页面回发过程中控件状态的技术,即保存页面回发时(从服务器发送和接收信息)的页面值,当页面回发到服务器并创建页面的新示例时,可以使用View State数据。
查看状态优势:

  • 非常容易实现。
  • 存储在客户端浏览器中的隐藏字段中,以Base64编码字符串的形式不加密,可以很容易地解码。
  • HTTP数据传输
    查看状态劣势:
  • 页的性能开销是存储在视图状态中的较大数据。
  • 以编码方式存储,使用敏感信息时不太安全。
    会话状态是另一种存储状态的状态管理技术,这意味着它有助于存储和使用来自先前请求的值。每当用户从Web应用程序请求Web表单时,它将被视为新请求。ASP.NET会话将用于存储指定时间段内的先前请求。
    以下是ASP.NET中可用的各种会话模式:
  • 关闭
  • InProc
  • StateServer
  • SQL Server
  • 定制

每种模式在Web应用程序中具有不同的行为。它们各有优缺点。

详细说明可在以下网址找到:

https://www.c-sharpcorner.com/UploadFile/de41d6/view-state-vs-session-state-vs-application-state/

相关问题