0

session["username]"Login.cs用户想要登录时定义

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

我想使用session["username"]UserPanelController 中的值

    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
            }

        }
    }

我无法访问会话,因为为空

4

1 回答 1

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 已经为您处理的东西?

于 2013-07-08T06:38:02.847 回答