Asp.net会话变量

我有一个带有c#代码的asp.net项目。 我有一个名为GlobalVariable的静态类,我存储了一些信息,比如当前选择的产品。

但是,我看到当有两个用户使用该网站时,如果一个用户更改了所选产品,则会为每个人更改。 静态变量似乎与每个人都是共同的。

我想创建(来自c#代码)某种会话变量,它只使用c#代码,但不仅来自页面,而且来自任何类。

是静态变量由整个应用程序共享,它们绝不是用户/会话私有的。

要从非页面类访问Session对象,您应该使用HttpContext.Current.Session

GlobalVariable是一个误导性的名称。 无论它被称为什么,如果它是每个会话,它不应该是static的。 你可以这样做:

 // store the selected product this.Session["CurrentProductId"] = productId; 

您不应该尝试使Session集合可以全局访问。 相反,只传递您需要的数据,并在适当的情况下使用Session获取/设置。

以下是在MSDN上使用ASP .NET中的会话存储的概述。

你回答了自己的问题。 答案是会话变量。 在GlobalVariable类中,您可以放置​​由会话变量支持的属性。

例:

 public string SelectedProductName { get { return (string)Session["SelectedProductName"]; } set { Session["SelectedProductName"] = value; } }