C#Cookies(修改/替换问题)

C#Cookies(修改/替换问题),c#,cookies,httplistener,C#,Cookies,Httplistener,我无法从服务器端修改存储在Cookie中的SessionKey的最后一个值。下一个请求中的SessionKey仍然具有旧值。我的服务器端代码有什么问题 var varHttpListenerContextResponseCookie_SessionKey = refHttpListenerContext.Response.Cookies[Constants.Cookies.LongNames.SessionKey]; if (varHttpListenerContextResponse

我无法从服务器端修改存储在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));
}

请帮帮我!:)

据我所知,您希望修改会话密钥。如果正确,那么您可以使用SessionManager,它将允许您创建一个新的会话密钥。如果这不是你想要的,请提供更多关于你的问题的细节

谢谢, 沙市


如果您的问题得到了回答,请将其标记为已回答。

据我所知,您希望修改会话密钥。如果正确,那么您可以使用SessionManager,它将允许您创建一个新的会话密钥。如果这不是你想要的,请提供更多关于你的问题的细节

谢谢, 沙市


如果您的问题得到了回答,请将其标记为已回答。

若要更新值,您必须记住将修改后的cookie添加到响应中

// 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);

若要更新值,必须记住将修改后的cookie添加到响应中

// 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);

另外,在修改/添加cookie时,不要忘记创建/增加过期时间,因为过期的cookie可能无法检索

cookieForPage.Expires = DateTime.Today.AddYears(100);

另外,在修改/添加cookie时,不要忘记创建/增加过期时间,因为过期的cookie可能无法检索

cookieForPage.Expires = DateTime.Today.AddYears(100);