同一站点下保存的Cookie,在有的电脑上能在其他页面上获取到,有的电脑上获取为空是什么问题啊???
还有有时候登录后,会出现在有的页面上能获取到Cookie,有的页面上获取不到,都是在同一站点下,但是过一会可能就能用了,不知道是不是服务器的问题?
提供一个测试方法,当你设置cookie值后,在要操作的页面地址栏输入javascript:alert(document.cookie);
看下在这个页面是否存在cookie值,这样慢慢排除。
理想的方法就是session和Cookie结合使用;
这样就不会丢失了;
就像我们在编写的时候在本地使用session是看不出问来,当发布到服务器上就会出现大问题,经常丢失数据,本身来说session也是有问题的;
所以Cookies的结合使用,个人认为是最好的方式
下面是本人是使用的方法, 欢迎大家拍砖
CookiesSession类文件:
/// <summary>
/// 写入Cookies
/// </summary>
/// <param name="cookiesname">Cookie 名称</param>
/// <param name="dt">释放时间</param>
/// <param name="value">对象</param>
public static void WriteCookies(string cookiesname, DateTime dt, object value)
{
HttpCookie aCookie = new HttpCookie(cookiesname);
//把对象序列化成string 进行保存
string strValue = AppSeriaLize.SerializeToString(value);
aCookie.Value = HttpContext.Current.Server.UrlEncode(strValue);
aCookie.Expires = dt;
HttpContext.Current.Response.Cookies.Add(aCookie);
}
/// <summary>
/// 写入Cookies
/// </summary>
/// <param name="cookiesname">Cookie 名称</param>
/// <param name="value">对象</param>
public static void WriteCookies(string cookiesname, object value)
{
HttpCookie aCookie = new HttpCookie(cookiesname);
//把对象序列化成string 进行保存
string strValue = AppSeriaLize.SerializeToString(value);
aCookie.Value = HttpContext.Current.Server.UrlEncode(strValue);
HttpContext.Current.Response.Cookies.Add(aCookie);
}
/// <summary>
/// 获取值
/// </summary>
/// <param name="cookiesname">Cookie 名称</param>
/// <returns></returns>
public static object GetCookies(string cookiesname)
{
if (HttpContext.Current.Request.Cookies[cookiesname] != null)
{
HttpCookie aCookie = HttpContext.Current.Request.Cookies[cookiesname];
//string反序列化成 一个对象
return AppSeriaLize.DeserializeFromString(HttpContext.Current.Server.UrlDecode(aCookie.Value));
}
else
{
return null;
}
}
调用:CookiesSession 文件的方法
/// <summary>
/// 登录人信息
/// </summary>
public User Admin
{
get
{
if (Session["Cookie 名称"] != null)
{
Session["Cookie 名称"] = (User)Session["Cookie 名称"];
return (User)Session["Cookie 名称"];
}
else
{
object user= CookiesSession.GetCookies("Cookie 名称");
if (person != null)
{
return (User) user
}
}
return null;
}
set
{
CookiesSession.WriteCookies("Cookie 名称", value);
Session["Cookie 名称"] = value;
}}
你添加Add同样键值时就是加上了,你去网上看看cookies使用方法,就知道了,
http://www.cnblogs.com/jembai/archive/2009/02/14/1390513.html,给你这个学习下吧