为什么在回发后cookie总是为空

时间:2010-08-12 18:11:53

标签: c# asp.net

我正在尝试将一些数据保存到cookie中但在回发后如果我在pageload中检查cookie的值,则该值始终为null

这就是我设置和获取cookie的方式

private static string GetCookie(string name)
{
    return HttpContext.Current.Response != null ? HttpContext.Current.Response.Cookies[name].Value : string.Empty;
}

private static void SetCookie(string name, string value)
{
    HttpContext.Current.Response.Cookies[name].Value = value;
    HttpContext.Current.Response.Cookies[name].Expires = DateTime.Now.AddDays(ExpireTimeInDays);
}

2 个答案:

答案 0 :(得分:11)

GetCookie()需要使用Request.Cookie而不是Response.Cookie

答案 1 :(得分:3)

HttpResponse.Cookies

  

ASP.NET包含两个内部cookie   集合。访问的集合   通过Cookies集合   HttpRequest包含cookie   由客户传送到   Cookie标头中的服务器。该   通过收集访问的集合   HttpResponse的Cookies集合   包含在。上创建的新cookie   服务器并传输到客户端   在Set-Cookie标题中。

     

使用后添加cookie   HttpResponse .. ::。Cookies集合,   cookie立即可用   HttpRequest .. ::。Cookies   收集,即使响应有   没有被发送给客户。

所以改变你的使用请求