是有一个唯一的编号,以cookie的形式存在客户端,asp.net除了这种形式以外,还可以存在数据库或URL里。

解决方案 »

  1.   

    session是一个集合,类似
    session("aaa")
    session("bbb")
    session("ccc")
    session("ddd")
      

  2.   

    Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。
      这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。
      除了SessionID,在每个Session中还包含很多其他信息。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。
      

  3.   

    我想问session是创建在服务器端的吗?是的是不是用户第一次访问一个网站时创建一个session,那随后开的n个窗口都可以访问同一个session吗?是的是不是服务器创建了一个session唯一的编号,要不然为设么同一台机器的多个窗口能访问到相同的session?的确服务器为每个客户端生成了唯一的与之对应的SESSION变量.
      

  4.   

    我想问session是创建在服务器端的吗? 是的。是不是用户第一次访问一个网站时创建一个session,那随后开的n个窗口都可以访问同一个session吗? 是的。是不是服务器创建了一个session唯一的编号,
    session并不是唯一的,愿意的话可以创建session
    session["sessionID"]="aaa";即可定义。
      

  5.   

    Session存在哪里是看Web.Config文件的相关设置,例如:
    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="StateServer"//这里有多种模式
       stateNetworkTimeout="5"
                stateConnectionString="tcpip=127.0.0.1:42424"
                cookieless="false" 
                timeout="600" 
        />
    关于Session的原理三言两语我也说不清,反正 用同一个ie窗口打开的页面具有相同的Session值,不同的客户端、不同的窗口它的Session都是不一样的
      

  6.   

    用户每向服务器请求一个页面,都会给用户建立一个唯一的用户标识,而不是像楼主说的“开的n个窗口都可以访问同一个session”尝试用Session.SessionID获取用于标识会话的唯一会话 ID,会发现刷新页面时标识都会改变的。
      

  7.   

    是有一个唯一的编号,以cookie的形式存在客户端,asp.net除了这种形式以外,还可以存在数据库或URL里。
    Session存在哪里是看Web.Config文件的相关设置,例如:
    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="StateServer"//这里有多种模式
       stateNetworkTimeout="5"
                stateConnectionString="tcpip=127.0.0.1:42424"
                cookieless="false" 
                timeout="600" 
        />
    关于Session的原理三言两语我也说不清,反正 用同一个ie窗口打开的页面具有相同的Session值,不同的客户端、不同的窗口它的Session都是不一样的
    Session存在哪里是看Web.Config文件的相关设置,例如:
    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="StateServer"//这里有多种模式
       stateNetworkTimeout="5"
                stateConnectionString="tcpip=127.0.0.1:42424"
                cookieless="false" 
                timeout="600" 
        />
    关于Session的原理三言两语我也说不清,反正 用同一个ie窗口打开的页面具有相同的Session值,不同的客户端、不同的窗口它的Session都是不一样的
      

  8.   

    个人理解,可能不准确全面:Session是服务器为每个用户创建的一个给用户保存状态值的"数据区",这个数据区不能交叉访问(每个用户只能访问自己的“数据区”)。这个"数据区"类似于一个集合数组,每个数组元数是一个“名-值对”,值域应该是一个内存的地址,因此可以存取对象类型的数据!
      

  9.   

    理解Session的一个好文章及其相关文章
    http://www.codeproject.com/aspnet/ASPNETSessionInternals.asp
      

  10.   

    我试下来,好像有从同一个窗口打开的网页不管是_self还是_blank都具有相同的sessionid
      

  11.   

    不同用户登陆服务器,自动分配一Session,
    即使你在本机,打开两个IE 分别访问网页,会产生两个Session。因为有两个进程访问服务器!!就分配两个Session