我使用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”] =“无论如何”的运气稍微好一点,但这使得基础持续存在,但所有子项都消失了。
答案 0 :(得分:2)
一个可能的原因:您的网页是HTTP,但您将Cookie设置为仅限HTTPS。因此浏览器根本不会通过HTTP请求将它们发送回您的网站。
使用Fiddler(或其他HTTP调试器)查看响应中是否正确发送了cookie(以及下一个请求)。