基本上......每当用户登录我的网站时,我都会创建一个包含加密客户数据的cookie。没问题。
但是,如果第三方网站用户点击我们的登录链接,我不仅需要创建相同的加密客户Cookie,还需要将其重定向到我从第三方网站生成的“returnURL” URL。
也没问题。 'returnURL'获得正确的映射等。但是,当我调用“response.sendRedirect(returnURL)”时,我被重定向到与cookie相同的域的第三方站点(这是正确的)。 ..但现在所有的COOKIES都已经消失了。
知道为什么会这样吗?
提前致谢!
答案 0 :(得分:0)
编辑:我回答好像OP询问了ASP.NET,而他实际上谈到了JSP。我会在这里留下我的答案以供参考,但这与问题无关。
如果你执行Response.Redirect();
会导致Response.End();
被调用(要么传递为第二个参数为true,要么根本没有传递第二个参数),如果是第一个参数,则会丢失会话数据你为用户编写会话信息的时间。例如,登录后,您可以设置do:
Session["userId"] = userId;
Response.Redirect("admin.aspx");
解决方案是致电
Response.Redirect("admin.aspx", false);
如果在执行重定向时会话尚不存在,则只会丢失会话数据。这里没有设置的不是会话数据本身,而是标识会话的cookie。
Betrand LeRoy更详细地解释了这一点:
http://weblogs.asp.net/bleroy/archive/2004/08/03/207486.aspx