代码之家  ›  专栏  ›  技术社区  ›  Ankitkumar Tandel

什么是asp.net c中会话变量作用域?

  •  1
  • Ankitkumar Tandel  · 技术社区  · 6 年前

    我有一个使用asp.net和c# 我正在创建一个会话任何页面如下

    Session["SessionName"] = "SessionValue";
    

    我需要知道在下面列出的情况下是否可以访问此会话变量

    1)在同一浏览器的新选项卡中访问同一个Web应用程序

    2)在同一浏览器的新窗口中访问同一个Web应用程序

    3)在其他浏览器中访问相同的Web应用程序

    谢谢

    2 回复  |  直到 6 年前
        1
  •  4
  •   Babak Naffas    6 年前

    简短回答:是到1和2;否到3(默认情况下,使用cookie存储会话id)。

    默认情况下,会话对象由存储在cookie中的会话id访问。任何可以共享同一个cookie的请求都将在服务器端代码上具有相同的会话对象。

    如果您需要您的应用程序跨浏览器工作,请阅读“无烹饪”会话部分 https://msdn.microsoft.com/en-us/library/ms178581.aspx

        2
  •  1
  •   mypsi    6 年前

    除了之前的回答(抱歉还没有足够的声誉发表评论)。

    如果希望第三种情况而不是会话正常工作,则必须定义如下应用程序变量:

    Application["SomeName"] = "SomeValue";
    

    进一步解释 here .