Asp.net会话变量

本文关键字:变量 会话 net Asp | 更新日期: 2023-09-27 18:27:21

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

然而,我看到当有两个用户使用该网站时,如果其中一个用户更改所选产品,如果每个人都更改。静态变量似乎对每个人都是通用的。

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

Asp.net会话变量

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

要从非页面类访问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; }
}