C#会话变量/应用程序范围的变量

时间:2015-11-12 09:33:36

标签: c# session-variables

我是来自C#的{​​{1}}新手,我正在尝试复制我在CF中开发的应用程序,以帮助我理解该语言。

我的应用程序将用户登录并搜索并购买虚拟物品。

在我的CF应用中,当用户登录时,我设置了一个名为ColdFusion的会话变量loggedIn

每个true请求只能在此会话变量为search/buy时生成。如果请求从主机返回过期的会话响应,则我更新true。然后会发出新的登录请求。

我如何在C#中实现这一点,以便我不需要将它传递给它并与它交互的每个类/方法返回它?

基本上,在CF中,我可以在应用程序中的任何位置设置和访问它,但这是否可以在C#中实现?

2 个答案:

答案 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;
    }
}