当前位置:编程学习 > C#/ASP.NET >>

cookie丢失的问题

我将程序发布到iis服务器后,服务器运行正常,但是客户端访问时,cookie总是null,然后永远登录不进去,为什么呢?程序在本地调试和连接服务器调试都没问题,都是可以正常进入的。

Default页面:
                int DepID = Convert.ToInt32(dt.Rows[0]["DepartmentID"]);
                string strDepName = deparment.GetList("DepartmentID="+DepID).Rows[0][1].ToString();
                HttpCookie cookie = new HttpCookie("UserInfo");
                cookie.Values.Add("UserInfoID", System.Web.HttpUtility.UrlEncode(dt.Rows[0]["UserInfoID"].ToString()));
                cookie.Values.Add("UserName", System.Web.HttpUtility.UrlEncode(dt.Rows[0]["UserName"].ToString()));
                cookie.Values.Add("DepartmentID", System.Web.HttpUtility.UrlEncode(DepID.ToString()));
                cookie.Values.Add("DepartName", System.Web.HttpUtility.UrlEncode(strDepName));
                Role ric = new Role();
                DataSet RoleSet = ric.GetUserRole(dt.Rows[0]["UserInfoID"].ToString());

                if (RoleSet.Tables[0].Rows.Count>0)
                {
                    ///////////还未考虑一个用户多个角色的情况
                    cookie.Values.Add("RoleID", System.Web.HttpUtility.UrlEncode(RoleSet.Tables[0].Rows[0]["RoleID"].ToString()));
                    cookie.Values.Add("RoleName", System.Web.HttpUtility.UrlEncode(RoleSet.Tables[0].Rows[0]["RoleName"].ToString()));
                    cookie.Expires = DateTime.Now.AddHours(3);   //有效期3个小时

                    //在保存 Cookie 信息之前,删除原有Cookie信息以避免重复
                    HttpContext.Current.Response.Cookies.Remove("UserInfo");
                    //保存Cookie信息
                    HttpContext.Current.Response.AppendCookie(cookie);
                    lblMessage.Text = "";
                    if (txtpassword.Text == "1")
                    {
                        Response.Write("<script>alert('当前您的密码为初始密码,为了您账户安全,请及时修改您的密码!');window.location='Main.aspx'</script>");
                    }
                    else
                    {
                        Response.Write("<script>window.location='Main.aspx'</script>");
                    }
                }


Main页面基础一个UIPage类,每次都要实现
    public UIPage()
    {
        HttpCookie cookie = HttpContext.Current.Request.Cookies["UserInfo"];

        if (cookie != null)
        {
            this.UserInfoID = Convert.ToInt32(System.Web.HttpUtility.UrlDecode(cookie.Values["UserInfoID"]));
            this.UserName = System.Web.HttpUtility.UrlDecode(cookie.Values["UserName"]);
            this.UserLogin = System.Web.HttpUtility.UrlDecode(cookie.Values["UserLogin"]);
            this.RoleID = Convert.ToInt32(System.Web.HttpUtility.UrlDecode(cookie.Values["RoleID"]));
            this.RoleName = System.Web.HttpUtility.UrlDecode(cookie.Values["RoleName"]);
            this.DepartmentID = Convert.ToInt32(System.Web.HttpUtility.UrlDecode(cookie.Values["DepartmentID"]));
            this.DepartName = System.Web.HttpUtility.UrlDecode(cookie.Values["DepartName"]);
        }
        else
        {
            HttpContext.Current.Response.Write("<script>top.location=Default.aspx'</script>");
        }
    } --------------------编程问答-------------------- 结帖率:0.00%  
--------------------编程问答-------------------- 检查浏览器是否禁用cookie

frame 引起 --------------------编程问答-------------------- 服务器端有可能禁止客户端写cookie吗? --------------------编程问答-------------------- 在服务器端除非你把cookie的过期时间过期时间设置成过去的时间就会失效 --------------------编程问答-------------------- 已经解决,换了个系统就好了 --------------------编程问答-------------------- 结贴率这么低。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,