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