2011-06-08 40 views
3

我刚刚获得了一项新任务来引导其他人创建的网站。但我对网络绝对陌生。该网站在ASP.NET,C#中。除了Session对象之外,代码本身并不难理解。我不明白在哪里,如何以及为什么使用它。可以请某人解释Session对象的使用情况并举例说明吗?在ASP.NET中使用会话对象

P.S.这两条线意味着什么?

lblPensValue.Text = sh.pensDec((string)Session["connSTR"], 113, 23); 
and 
    if ((string)Session["connSTR"] == null) 

回答

6

Session用于在网站上存储用户会话的数据。 (该数据存储是每个用户浏览器会话,并且随时可能被各种应用事件擦除)

它通常用于在用户会话(即访问)中跨多个页面视图存储信息,到您的网站。

它可以在用户会话的上下文中运行的代码中的任何位置使用;意思是在页面内部,或者在会话环境中运行的适当的应用程序生命周期事件中(例如会话开始)

至于你的样品;

第一个,我不能完全解释,因为我不知道函数sh.pensDec()应该做什么。

第二个是在运行下面的代码之前检查以确保在该会话变量中存储了一个值。

+0

小,但很重要的一点:不能访问会话在'BeginRequest'事件处理程序。在'PostAcquireRequestState'事件发生之前,会话将不可用。 – 2013-05-15 13:37:04

+0

@PatrickM好点;纠正! – 2013-05-15 19:19:16

5

HTTP本质上是无状态的。 WebServer在处理请求并发送回客户端后不知道任何细节。因此,任何后续请求都像是对服务器的新请求。

为了使服务器能够记住&随后承认它提供给客户端,ASP.NET使用各种机制,其中Session就是其中之一。

会话是为每个用户创建的。所以,在你的页面中,你正在获取“connSTR”正在存储它。每当随后的请求来自同一用户时,通过查询会话的密钥

Session["connSTR"] 

您会收回其值。由于Session是一个对象,因此它在您的代码中作为字符串进行转换。