在我的应用程序中,我具有设置cookie的过滤器:
HttpContext.Response.Cookies.Append("myCookie", "value")
当我在视图中打印cookie值时:
HttpContext.Request.Cookies["myCookie"];
它不在那里。如果我刷新页面cookie被设置。发生这种情况是因为使用Response.Cookies.Append
不会更新Request.Cookies
集合。是否可以查看在请求期间进行了更改的当前cookie?
在我的Web应用程序中,我有IAsyncActionFilter
,它会更新cookie,但是更正后的值只有在刷新页面后才可见,我想用新值完成当前请求。我知道它将在响应完成时由浏览器设置,但是我已经知道该cookie具有新的值,并且我希望将此值传播给读取cookie的视图。
答案 0 :(得分:0)
不。这就是Cookies的工作方式。它们来自客户端。换句话说,cookie在收到来自服务器的带有Set-Cookie
标头的响应之后,由客户端设置。然后,只有在客户端发出另一个请求并将其发送回cookie后,它才存在于服务器端。目前尚不清楚最终要实现的目标,但是即使设置了将重定向返回到同一页面,您也需要在设置cookie后强制新请求才能访问该cookie。