HttpSessionState在哪里,如何,优势?

时间:2010-06-17 12:49:03

标签: c# asp.net session asp.net-ajax session-variables

你看到下面的代码,我是如何使用会话变量的; 所以这三个问题是:

  1. 他们存放在哪里? (服务器或客户端)
  2. 每个网页访问者都是独一无二的吗?
  3. 当我的工作完成后,我可以使用ajax或简单的js代码删除它吗?或者它会被自动删除..?
  4. sbyte[][] arrImages = svc.getImagesForFields(new String[] { "CustomerName", "CustomerSurName" });
    
    Dictionary<string, byte[]> smartImageData = new Dictionary<string, byte[]>();
    int i = 0;
    foreach (sbyte[] bytes in arrImages)
    {
        smartImageData.Add(fieldNames[i], ConvertToByte(bytes));
        i++;
    }
    
    Session.Add("SmartImageData", smartImageData);
    

4 个答案:

答案 0 :(得分:4)

详细了解会话here。回答你的问题:

  1. 取决于您的配置(进程内,会话状态服务器等),但始终是服务器端。
  2. 是的,每位访客都会获得一个独特的Cookie。
  3. 您可以通过调用ASP.NET_SessionId删除会话cookie(通常是Session.Abandon())或服务器端来删除客户端。此外,会话在某个(可配置的)不活动时段后超时。

答案 1 :(得分:0)

会话变量存储在服务器上?您可以配置其他状态管理机制(例如数据库)。

它们对于每个用户会话都是唯一的。当会话超时时,它将被删除。

答案 2 :(得分:0)

会话状态信息存储在服务器上,而不是客户端。会话到期时,将完全自动删除此会话信息。您可以通过web.config文件更改会话到期持续时间。会话数据对每个用户都是唯一的。您可以随时使用ajax或更改它甚至删除它。

如果希望会话数据持久化为持久性,则可以配置数据库以存储会话信息。您甚至可以配置状态服务器来存储会话数据。

答案 3 :(得分:0)

会话通常存储在服务器上(取决于您的服务器/应用程序配置)。为每个唯一的浏览器连接分配一个会话ID,服务器使用该会话ID将客户端与后续连接上的唯一服务器会话相关联。会话ID被传递给客户端,以存储为cookie或作为附加到服务器的每个URL请求的参数。

它用作在HTTP调用之间保持服务器的客户端状态的手段。

会话在可配置的不活动时间后到期。但是在.NET中,您可以调用Session.Abandon()来结束当前会话。