已更新的 Cookie 在 Response.Redirect 上不起作用
Updated Cookie not working on Response.Redirect
我正在按如下方式更新 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");
并且在 operationSelection 页面中,我试图访问它显示先前值的 cookie。
lbluser.Text = Request.Cookies["SSOPortalUser"].Value
正如评论中指出的那样,问题是由错误的假设引起的,即更新请求 cookie 值(在 else
分支中)将以某种方式更新客户端上的 cookie 值。事实并非如此,因为要在客户端更新 cookie,您需要将另一个具有相同名称(和不同值)的 cookie 附加到响应中。更新请求 cookie 没有任何用处(只是更新表示请求 cookie 的内存结构的值)。
我正在按如下方式更新 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");
并且在 operationSelection 页面中,我试图访问它显示先前值的 cookie。
lbluser.Text = Request.Cookies["SSOPortalUser"].Value
正如评论中指出的那样,问题是由错误的假设引起的,即更新请求 cookie 值(在 else
分支中)将以某种方式更新客户端上的 cookie 值。事实并非如此,因为要在客户端更新 cookie,您需要将另一个具有相同名称(和不同值)的 cookie 附加到响应中。更新请求 cookie 没有任何用处(只是更新表示请求 cookie 的内存结构的值)。