2012-05-09 1 views
0

기본적으로 ... 사용자가 내 사이트에 로그인 할 때마다 암호화 된 고객 데이터가 포함 된 쿠키를 만듭니다. 그렇게하는 데 아무런 문제가 없습니다.왜 내 response.sendRedirect (returnURL)이 내가 설정 한 도메인 쿠키를 죽이게됩니까?

그러나 제 3 자 사이트 사용자가 로그인 링크를 클릭하면 동일한 암호화 된 고객 쿠키를 생성 할뿐만 아니라 제 3 자 사이트에서 생성 한 'returnURL'로 리디렉션해야합니다. 생성 된 URL.

아무 문제가 없습니다. 'returnURL'은 적절한 매핑을 얻습니다. 그러나 "response.sendRedirect (returnURL)"을 호출하면 쿠키와 동일한 도메인의 제 3 자 사이트로 리다이렉트됩니다. 하지만 .. 모든 요리는 이제 없어 졌어.

왜 이런 일이 발생하는지 알고 싶습니다.

미리 감사드립니다.

+1

나는 몇 가지 아이디어를 가지고 있지만 무슨 일이 일어나고 있는지 질문에서 100 % 명확하지 않다. 몇 가지 샘플 URL, 쿠키 작성시기, 전송시기 및 누락 된 URL을 포함하여 일련의 이벤트로 질문을 확장 할 수 있습니까? –

답변

0

편집 : OP에 대해 ASP.NET에서 질문하는 것처럼 대답했습니다. 실제로 JSP에 대해 이야기했습니다. 나는 여기에 대한 답을 남겨 두겠다. 그러나 그 질문과는 무관하다.

이 호출되면 (두 번째 매개 변수로 true를 전달하거나 두 번째 매개 변수를 전혀 전달하지 않음) 결과를 얻지 못하면 세션 데이터를 잃게됩니다. 사용자. 예를 들어, 로그인 후, 당신이 할 설정할 수 있습니다 :

Session["userId"] = userId; 
Response.Redirect("admin.aspx"); 

이 솔루션은 사용자가 리디렉션을 수행 할 때 세션이 아직 존재하지 않는 경우에만 세션 데이터를 잃게됩니다

Response.Redirect("admin.aspx", false); 

를 호출하는 것입니다. 여기에 설정되지 않은 것은 세션 데이터 자체가 아니라 세션을 식별하는 쿠키입니다.

Betrand 리로이는 더 자세하게 설명 :

http://weblogs.asp.net/bleroy/archive/2004/08/03/207486.aspx

+1

OP는 ASP가 아닌 JSP를 사용합니다. – BalusC

+0

사실입니다. 죄송합니다. – data