我无法修改服务器端存储在Cookie中的SessionKey的最后一个值。下一个请求中的SessionKey仍具有旧值。我的服务器端代码有什么问题?
var varHttpListenerContextResponseCookie_SessionKey =
refHttpListenerContext.Response.Cookies[Constants.Cookies.LongNames.SessionKey];
if (varHttpListenerContextResponseCookie_SessionKey != null)
{
varHttpListenerContextResponseCookie_SessionKey.Value = refSessionKey;
}
else
{
refHttpListenerContext.Response.AppendCookie(
new System.Net.Cookie(Constants.Cookies.LongNames.SessionKey, refSessionKey));
}
请帮助我!:)
答案 0 :(得分:3)
如果要更新值
,必须记住将修改后的cookie添加到Response// get existing cookie or create new
var cookie = Request.Cookies[Constants.Cookies.LongNames.SessionKey] ?? new HttpCookie(Constants.Cookies.LongNames.SessionKey);
// set cookie value
cookie.Value = refSessionKey;
// add cookie to http repsonse
Response.Cookies.Add(cookie);
答案 1 :(得分:0)
根据我的理解,您希望修改会话密钥。如果它是正确的,那么您可以使用SessionManager,它将允许您创建新的会话密钥。如果这不是您想要的,请提供有关您问题的更多详细信息。
谢谢, 沙市
如果您的问题得到了回答,请将其标记为已回答。
答案 2 :(得分:0)
同样在修改/添加cookie时,不要忘记创建/增加过期时间,因为过期的cookie可能无法检索
cookieForPage.Expires = DateTime.Today.AddYears(100);