Jsp 为什么我的response.sendRedirect(returnURL)最终会杀死任何域cookie I';你准备好了吗?

Jsp 为什么我的response.sendRedirect(returnURL)最终会杀死任何域cookie I';你准备好了吗?,jsp,cookies,response.redirect,Jsp,Cookies,Response.redirect,基本上…只要用户登录到我的站点,我就用加密的客户数据创建一个cookie。这样做没问题 但是,如果第三方站点用户单击我们的登录链接,我不仅需要创建这个相同的加密客户cookie,还需要将它们重定向到一个“returnURL”,我从他们的第三方站点生成的URL构建该URL 这样做也没问题。“returnURL”得到了正确的映射,等等。但是,当我调用“response.sendRedirect(returnURL)”时,我被重定向到与cookie相同域的第三方站点(这是正确的)……但是所有cooki

基本上…只要用户登录到我的站点,我就用加密的客户数据创建一个cookie。这样做没问题

但是,如果第三方站点用户单击我们的登录链接,我不仅需要创建这个相同的加密客户cookie,还需要将它们重定向到一个“returnURL”,我从他们的第三方站点生成的URL构建该URL

这样做也没问题。“returnURL”得到了正确的映射,等等。但是,当我调用“response.sendRedirect(returnURL)”时,我被重定向到与cookie相同域的第三方站点(这是正确的)……但是所有cookie现在都消失了

知道为什么会这样吗


提前谢谢

编辑:我的回答就像OP问ASP.NET一样,而他实际上谈论的是JSP。我将在这里留下我的答案供参考,但它与问题无关

如果执行
响应,则重定向()这将导致
响应.End()被调用(将true作为第二个参数传递,或根本不传递第二个参数),如果是第一次为用户写入会话信息,则会丢失会话数据。例如,登录后,您可以设置do:

Session["userId"] = userId;
Response.Redirect("admin.aspx");
解决办法是打电话

Response.Redirect("admin.aspx", false);
只有在执行重定向时会话不存在时,才会丢失会话数据。这里没有设置的不是会话数据本身,而是标识会话的cookie

Betrand LeRoy更详细地解释了这一点:


我有一些想法,但从你的问题上看,还不是100%清楚到底发生了什么。你能用一系列事件来展开你的问题吗?包括一些示例URL,cookies是何时创建的,何时发送的,何时丢失的?