当我通过 Response.cookies.add(cookie);
添加 cookie 时,我的 cookie 不会放置在客户端,直到客户端从我的站点请求页面。在请求时 .net 会做一些魔术,将 cookie 放在响应中,客户端将存储它。 这是真的吗? 如果上述假设成立,我应该能够通过 cookie = response.cookies("foo")
看到未放置的 cookie . 看似合乎逻辑,但是否正确?
总结一下。
我正在放置一个 cookie,然后在服务请求之前的代码中,我正在检查 cookie 是否在 request.cookies("foo"
) 中,如果不在,我正在检查response.cookies("foo")
。这种方法不起作用。在将 cookie 发送到客户端之前,我将如何读取它。
我需要回答的实际问题; 有没有办法在我将cookies信息发送到浏览器之前查看它?检查 cookie 是否在浏览器上,如果没有,请执行其他检查以查看它是否正在等待发送。如果它正在等待发送,请读取其上的数据
非常感谢。
最佳答案
如果我对问题的理解正确,那么您希望在收到来自客户端的请求后的某个时刻向 HttpResponse
添加一个 cookie。然后在稍后处理您想要再次访问同一个 cookie 的请求时。
这句话可能对你有帮助:
"After you add a cookie by using the
HttpResponse.Cookies
collection, the cookie is immediately available in theHttpRequest.Cookies
collection, even if the response has not been sent to the client."
(来自 http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cookies.aspx)
我建议您只在响应期间的某个时刻处理 cookie。因此,您可以检查它是否在 HttpRequest
中可用,如果不可用,则将其添加到 HttpResponse
并调用您的附加逻辑。
关于c# - Cookie时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781881/