我是来自C#
的{{1}}新手,我正在尝试复制我在CF中开发的应用程序,以帮助我理解该语言。
我的应用程序将用户登录并搜索并购买虚拟物品。
在我的CF应用中,当用户登录时,我设置了一个名为ColdFusion
的会话变量loggedIn
。
每个true
请求只能在此会话变量为search/buy
时生成。如果请求从主机返回过期的会话响应,则我更新true
。然后会发出新的登录请求。
我如何在C#中实现这一点,以便我不需要将它传递给它并与它交互的每个类/方法返回它?
基本上,在CF中,我可以在应用程序中的任何位置设置和访问它,但这是否可以在C#中实现?
答案 0 :(得分:0)
您记录的会话可以是您在用户登录时实例化的类,也就是您在到期时失效/销毁的类。
然后你应该在那个类中移动相关的方法,这样它们总是可以被执行,因为它们只存在于活动会话的范围内。
答案 1 :(得分:0)
如果您只想设置会话值,那么您可以使用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;
}
}