C# HttpSessionState在何处、如何发挥优势?

C# HttpSessionState在何处、如何发挥优势?,c#,asp.net,session,asp.net-ajax,session-variables,C#,Asp.net,Session,Asp.net Ajax,Session Variables,您可以看到下面的代码,我是如何使用session变量的; 因此,这三个问题是: 它们存放在哪里?(服务器端或客户端) 它们对于每个网页访问者都是唯一的吗 当我的工作完成后,我可以使用ajax或简单的js代码删除它吗?或者它将被自动删除 sbyte[]]arrImages=svc.getImagesForFields(新字符串[]{“CustomerName”、“CustomerUrName”}); Dictionary smartImageData=新字典(); int i=0; foreac

您可以看到下面的代码,我是如何使用session变量的; 因此,这三个问题是:

  • 它们存放在哪里?(服务器端或客户端)
  • 它们对于每个网页访问者都是唯一的吗
  • 当我的工作完成后,我可以使用ajax或简单的js代码删除它吗?或者它将被自动删除
  • sbyte[]]arrImages=svc.getImagesForFields(新字符串[]{“CustomerName”、“CustomerUrName”});
    Dictionary smartImageData=新字典();
    int i=0;
    foreach(图像中的sbyte[]字节)
    {
    添加(字段名[i],转换字节(字节));
    i++;
    }
    添加(“SmartImageData”,SmartImageData);
    
    会话变量是否存储在服务器上?您可以配置其他状态管理机制(例如数据库)


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

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

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

    阅读有关会话的详细信息。回答您的问题:

  • 取决于您的配置(进程中、会话状态服务器等),但始终是服务器端
  • 是的,每个访问者都会得到一个独特的cookie
  • 您可以通过删除会话cookie(通常是
    ASP.NET\u SessionId
    )在客户端删除它,也可以通过调用
    session.advand()
    在服务器端删除它。此外,会话在某个(可配置的)非活动期后超时
  • 阅读更多有关会话的信息。回答您的问题:

  • 取决于您的配置(进程中、会话状态服务器等),但始终是服务器端
  • 是的,每个访问者都会得到一个独特的cookie
  • 您可以通过删除会话cookie(通常是
    ASP.NET\u SessionId
    )在客户端删除它,也可以通过调用
    session.advand()
    在服务器端删除它。此外,会话在某个(可配置的)非活动期后超时

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


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

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


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

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

    它被用作在HTTP调用之间与服务器保持客户端状态的一种方法


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

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

    它被用作在HTTP调用之间与服务器保持客户端状态的一种方法


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

    客户端上用于标识用户会话的cookie称为ASP.NET_SessionId。客户端上用于标识用户会话的cookie称为ASP.NET_SessionId。
    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);