会话没有被创建......为什么?

时间:2014-03-14 16:21:06

标签: asp.net session asp.net-membership login-control

在登录页面上,我已经创建了这样的会话。

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        if (Session["UserId"] != null)
        {
            Response.Redirect("~/client/ClientHome.aspx");
        }
        if (Request.QueryString["error"] != null)
        {
            loginuser.FailureText= "Please Login to visit the Page";
        }
    }

    protected void loginuser_LoggedIn(object sender, EventArgs e)
    {
        if (Roles.IsUserInRole(loginuser.UserName, "admin"))
        {
            string username = loginuser.UserName;
            DataSet ds = new DBUsers().GetUserId(username);
            Guid userid = Guid.Parse(ds.Tables[0].Rows[0][0].ToString());
            Session["UserId"] = userid;
            Response.Redirect("Admin/Home.aspx");

        }
        else if (Roles.IsUserInRole(loginuser.UserName, "client"))
        {

            bool isPersistent = false;
            string username = loginuser.UserName;
            DataSet ds = new DBUsers().GetUserId(username);
            Guid userid = Guid.Parse(ds.Tables[0].Rows[0][0].ToString());
            Session["UserId"] = userid;
            string userData = "ApplicationSpecific data for this user.";

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
             username,
             DateTime.Now,
             DateTime.Now.AddMinutes(30),
             isPersistent,
             userData,
             FormsAuthentication.FormsCookiePath);

            // Encrypt the ticket.
            string encTicket = FormsAuthentication.Encrypt(ticket);

            // Create the cookie.
            Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

            // Redirect back to original URL.
            Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent));
}
}

这里session的值不为null,它包含userid 但是当主页加载时,表示会话的值为空

  protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();
        if (Session["UserId"] == null)
        {
            Response.Redirect("../Login.aspx?error=1");

        }
    }

为什么它进入if语句,为什么sesion值为null。

0 个答案:

没有答案