C#会话变量/应用程序范围的变量
本文关键字:变量 范围 应用程序 会话 | 更新日期: 2023-09-27 18:21:34
我是ColdFusion
的C#
新手,我正在尝试复制我在CF中开发的应用程序,以帮助我理解该语言。
我的应用程序让用户登录并搜索和购买虚拟物品。
在我的CF应用程序中,当用户登录时,我设置了一个名为loggedIn
的会话变量,即true
。
每个search/buy
请求只能在该会话变量为true
时发出。如果请求从主机返回过期的会话响应,则我更新session.loggedIn = false
。然后会发出一个新的登录请求。
我该如何在C#中实现这一点,这样我就不需要将它传递给它交互的每个类/方法并从中返回它了?
基本上,在CF中,我可以从应用程序中的任何地方设置和访问它,但这在C#中可以实现吗?
您记录的会话可以是一个在用户登录时实例化的类,一个在过期时失效/销毁的类。
然后,您应该将相关方法移动到该类的中,这样它们就可以始终执行,因为它们只存在于活动会话的范围内。
如果您只是想设置一个会话值,那么您可以使用Session
属性,该属性可用于WebForm或Controller(不清楚您使用的是WebForms还是MVC)。
无论哪种方式,使用该程序对两者都是相同的,例如
写入
Session["loggedIn"] = true;
读取
bool isLoggedIn = Convert.ToBoolean(Session["loggedIn"]);
我建议您在WebForm/Controlle上创建一个属性来包装此功能,例如
public bool UserIsLoggedIn
{
get
{
if (Session["loggedIn"] != null)
{
return Convert.ToBoolean(Session["loggedIn"]);
}
return false;
}
set
{
Session["loggedIn"] = value;
}
}