在mvc3控制器中获取当前会话

时间:2013-07-08 06:36:37

标签: c# asp.net-mvc-3

当用户想要登录时,我在session["username]"中定义Login.cs

    public static void SetLogin(string username, bool remmember)
        {
             HttpContext.Current.Session["username"] = username;
        }

我希望在UserPanelController中使用session["username"]

    public class UserPanelController : Controller
    {
        Customer cu;
        Customer.customer cust;
        public UserPanelController()
        {
            if (Login.ChekLogin())
            {
                cust = cu.Read(int.Parse(Session["username"].ToString()));
                // error Occur here Session is null
            }

        }
    }

我无法访问会话,因为它是null

1 个答案:

答案 0 :(得分:5)

您似乎试图在ASP.NET MVC控制器的构造函数中使用Session。它是空的是正常的。会话在稍后阶段初始化 - 使用Initialize方法:

public class UserPanelController : Controller
{
    Customer cu;
    Customer.customer cust;

    protected override void Initialize(RequestContext requestContext)
    {
        base.Initialize(requestContext);
        if (Login.ChekLogin())
        {
            cust = cu.Read(int.Parse(Session["username"].ToString()));
            // error Occur here Session is null
        }
    }
}

此外,您似乎正在尝试将用户名转换为整数。你确定是这种情况吗?

另外,为什么你使用Session来处理FormsAuthentication已经为你处理过的东西?