C# C会话变量/应用程序范围变量
我刚从ColdFusion开始接触C,我正在尝试复制我在CF中开发的应用程序,以帮助我理解该语言 我的应用程序让用户登录并搜索和购买虚拟物品 在我的CF应用程序中,当用户登录时,我设置了一个名为loggedIn的会话变量,该变量为true 每次搜索/购买请求只能在此会话变量为true时发出。如果请求从主机返回过期的会话响应,则我更新session.loggedIn=false。然后发出新的登录请求 我如何在C中实现这一点,从而不需要将它传递给与之交互的每个类/方法并从中返回它C# C会话变量/应用程序范围变量,c#,session-variables,C#,Session Variables,我刚从ColdFusion开始接触C,我正在尝试复制我在CF中开发的应用程序,以帮助我理解该语言 我的应用程序让用户登录并搜索和购买虚拟物品 在我的CF应用程序中,当用户登录时,我设置了一个名为loggedIn的会话变量,该变量为true 每次搜索/购买请求只能在此会话变量为true时发出。如果请求从主机返回过期的会话响应,则我更新session.loggedIn=false。然后发出新的登录请求 我如何在C中实现这一点,从而不需要将它传递给与之交互的每个类/方法并从中返回它 基本上,在CF中,
基本上,在CF中,我可以在应用程序中的任何位置设置和访问它,但在C中这是可以实现的吗?您记录的会话可以是一个类,用户登录时可以实例化该类,过期时可以使其失效/销毁
然后,您应该将相关方法移动到该类中,以便始终可以执行这些方法,因为它们仅存在于活动会话的范围内。如果您只想设置会话值,则可以使用session属性,该属性可用于WebForm或Controller。不清楚您是否使用WebForms或MVC 无论哪种方式,使用该程序对两种情况都是一样的,例如 书写 会话[loggedIn]=真 阅读 bool isLoggedIn=Convert.ToBooleanSession[loggedIn] 我建议您在WebForm/Controlle上创建一个属性来包装此功能,例如
public bool UserIsLoggedIn
{
get
{
if (Session["loggedIn"] != null)
{
return Convert.ToBoolean(Session["loggedIn"]);
}
return false;
}
set
{
Session["loggedIn"] = value;
}
}
这个问题是针对ASP.NET WebForms还是ASP.NET MVC的?我建议您不要尝试将代码从ColdFusion复制到C。模式会有所不同,这可能不是使用不同语言的最佳方法。我建议您看看Identity 2框架,这将满足您的需要,它是一个用于身份验证和用户身份验证的框架。