科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET中的状态管理

ASP.NET中的状态管理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Web表格网页是基于HTTP的,它们没有状态,这意味着它们不知道所有的请求是否来自同一台客户端计算机

作者:刘彦青 来源:yesky 2007年11月8日

关键字: Windows

  • 评论
  • 分享微博
  • 分享邮件
2、服务器端的状态管理

  信息存储在服务器上,尽管其安全性较高,但会占用较多的web服务器资源。

  A、Aplication对象

  Aplication对象提供了一种让所有在Web应用服务器中运行的代码访问的存储数据的机制,插入应用程序对象状态变量的数据应该能够被多个对话共享,而且不会频繁地改变。正是因为它能够被全部应用程序所访问,因此,我们需要使用Lock和UnLock对避免其中的值出现冲突。

[c#]

Application.Lock();

Application[“mydata”]=”mydata”;

Application.UnLock();

  B、Session对象

  Session对象可以用来存储需要在服务器的多次请求-应答期间和对网页的请求期间进行维护的指定对话的信息。Session对象是每个对话的存在的基础,也就是说不同的客户端生成不同的Session对象。存储在对话状态变量中的数据存在的周期较短。

  每个活动的ASP.NET对话是由一个包含合法的URL ASCII字符、长度为120位的SessionID字符串唯一确定和跟踪的。SessionID的值是由一个能够保证唯一性的算法生成的,以便对话之间不会冲突,SessionID的随意性使得我们很难猜测出一介现有对话的ID。

  根据应用程序的配置设置情况,SessionID通过HTTP cookie或修改后的URL在客户端-服务器请求之间进行传输。那么,如何设置应用程序配置的对话装备方法。

  每个web应用程序必须有一个名字为web.config的配置文件,它是基于XML文件的。下面是一个名字为sessionState的对话:

  cookieless选项的值为true或false。当其值为false(缺省值)时,ASP.NET将使用HTTP cookie来识别用户;当其值是true时,ASP.NET将随机地生成一个唯一的号码,并将它放在被请求的文件的前面,这一号码是用来识别用户的,我们能够在IE的地址栏中看到它:

  http://localhost/Management/(2yzakzez3eqxut45ukyzq3qp)/Default.aspx

  OK,下面我们再回到session对象。

[c#]
file://存储信息
Session[“myname”]=”Mike”;
file://获得信息
myname=Session[“myname”];

  C、数据库

  数据库将使我们能够存储大量的与Web应用程序中的状态相关的信息,有时,用户会使用唯一的ID频繁地访问数据库,我们可以将它存储在数据库中,在对网站中网页的多次请求中使用。

  总结

  ASP.NET中的功能和工具比ASP中更多,使我们能够更有效和高效地管理网页的状态。具体选择哪种方法与你的应用程序有关,在选择时可以考虑下面的问题:

  ·需要存储多少信息?

  ·客户端接受持久的还是内存中的cookie?

  ·希望在客户端还是在服务器端存储信息?

  ·要存储的信息需要保密吗?
  
  ·希望你的网页的性能如何?

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章