Cookie不是持久的

时间:2013-01-03 00:42:21

标签: asp.net cookies persistence

我使用ASP.net存储cookie。我在后面的代码(C#)中的弹出窗口上保存了一个cookie。如果我在弹出窗口关闭之前请求cookie,那么cookie就在那里,但关闭弹出窗口并返回到它并查看Page_Load事件中的cookie显示没有cookie。如何让它坚持下去?

在弹出的确定按钮

中输入代码
// Set the cookie.
this.Response.Cookies["UserData"].Secure = true;
this.Response.Cookies["UserData"]["UserId"] = iId.ToString();
this.Response.Cookies["UserData"]["UserEmail"] = strEmail;
this.Response.Cookies["UserData"].Expires = DateTime.Now.AddDays(1);

将以下代码置于Page_Load事件

// Get the cookie.
if (null != this.Request.Cookies["UserData"])
{
    // Transmit the cookie information using SSL. Note, the cookie data is still in plain text on the user's computer.
    this.Request.Cookies["UserData"].Secure = true;

    // Extract: Email
    String strEmail = this.Server.HtmlEncode(oPage.Request.Cookies["UserData"]["UserEmail"]);
}

当然,第一次会显示虚无,但后续加载应显示cookie。

我使用.Values [“Subitem”] =“无论如何”的运气稍微好一点,但这使得基础持续存在,但所有子项都消失了。

1 个答案:

答案 0 :(得分:2)

一个可能的原因:您的网页是HTTP,但您将Cookie设置为仅限HTTPS。因此浏览器根本不会通过HTTP请求将它们发送回您的网站。

使用Fiddler(或其他HTTP调试器)查看响应中是否正确发送了cookie(以及下一个请求)。