我正在更新cookie,如下所示
if (Request.Cookies["SSOPortalUser"] == null)
{
HttpCookie myCookieSSOPortalUser = new HttpCookie("SSOPortalUser");
// Set the cookie value.
myCookieSSOPortalUser.Value = currentUser.UserLogin.ToString();
// Add the cookie.
Response.Cookies.Add(myCookieSSOPortalUser);
}
else
{
Request.Cookies["SSOPortalUser"].Value = currentUser.UserLogin.ToString();
}
但是,在我重定向到另一页后,未在浏览器中进行更新
Response.Redirect(AppSettings.Instance.AppRoot + "OperationSelection.aspx");
和在"操作"单元中,我正在尝试访问cookie,它显示了上一个值。
lbluser.Text = Request.Cookies["SSOPortalUser"].Value
在评论中发现的问题是错误的,是错误的假设是,更新请求cookie值(在else
分支中(将以某种方式更新客户端上的cookie值。事实并非如此,因为要在客户端上更新Cookie,您需要将另一个具有相同名称(和不同值(的cookie附加到响应中。更新请求cookie无济于事(仅更新代表请求cookie的内存结构的值(。