2012-08-27 3 views
0

하나의 Windows 2008 IIS 서버에 두 개의 사이트를 설치했습니다. 첫 번째 사이트에서 사용자는 웹 페이지를 클릭하고 다음 간단한 C# 코드를 사용하여 쿠키를 만듭니다.동일한 웹 서버에서 당사자 쿠키를 찾을 수 없음

<% 
    HttpCookie myCookie = new HttpCookie("MyTestCookie"); 
    myCookie.Value = "Hi"; 
    myCookie.Expires = DateTime.Now.AddMinutes(1); 
    Response.Cookies.Add(myCookie); 
>% 

이 사이트는 사실에 쿠키를 "볼"수 있습니다 내가 그 값을 표시하려면 다음 코드를 사용할 수 있다는 것을 확인했습니다 동일한에서 호스팅되는 다른 사이트에

<% Response.Write(Request.Cookies["MyTestCookie"].Value); %> 

을 섬기는 사람. 다음 코드를 사용하여 쿠키에 값이 할당되었는지 확인합니다.

if (Request.Cookies["MyTestCookie"] == null) 
{ 
    lblErr.Text = "Cookie is null."; 
} 
else 
{ 
    lblErr.Text = Request.Cookies["MyTestCookie"].Value; 
} 

null입니다. 그러나 며칠 전에, 그것은 null이 아니었다. 실제 사이트의 전체 코드에서 일부 사용자를 제외한 모든 사용자가 사용할 수있었습니다. 이 특정 사용자의 문제를 해결하기 위해 모든 사용자가 작업을 중단했습니다.

내가 뭘 잘못하고 있는지 모르겠지만 완전히 독립적이며 서로를 인식하지 못하는 두 사이트간에 값을 전달해야합니다. 제 1 사 쿠키는 동일한 서버에서 작동한다고 생각했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

쿠키는 쿠키의 출처 URL과 연결되어 있습니다. 브라우저는 사이트 A에서받은 쿠키를 사이트 B에 보내지 않으며 그 반대도 마찬가지입니다. 몇 가지 예를 들어 사용자가 쿠키를 차단하는 경우 -

문제가 사용자에 의존하는이 브라우저의 쿠키 설정과 관련이 아마도 경우

편집 할 수 있습니다.

+0

URL이 www.server.com/Thisdirectory이고 다른 URL이 www.server.com/Thatdirectory 인 경우에도? –

+0

@Sephethus - 예 –

+0

385 명의 다른 테스트 사용자가 작동 한 다음 갑자기 중단 된 이유는 무엇입니까? –

1

Path 속성을 "/"으로 설정하고 사이트가 동일한 도메인 이름을 사용하는지 확인하십시오.

다른 하위 도메인에있는 경우 Domain 속성을 domainname.com (도메인 이름)으로 설정하십시오.

편집 :

귀하의 코드는 다음과 같아야합니다

if (Request.Cookies["MyTestCookie"] == null) 
{ 
    HttpCookie myCookie = new HttpCookie("MyTestCookie"); 
    myCookie.Path = "/"; 
    myCookie.Domain = "domain.com"; 
    myCookie.Value = "Hi"; 
    myCookie.Expires = DateTime.Now.AddMinutes(1); 
    Response.Cookies.Add(myCookie); 

    lblErr.Text = "Cookie was null."; 
} 
else 
{ 
    lblErr.Text = Request.Cookies["MyTestCookie"].Value; 
} 
+0

이러한 것들 중 아무 것도 작동하지 않는 것 같습니다. –

+0

시스템에 캐싱이 있습니까?쿠키에 대한 그룹 정책은 무엇입니까? 또한 쿠키 값을 확인하기 위해 코드를 배치하는 방법과 위치에주의해야합니다. 패턴에 대한 내 대답의 업데이트를 참조하십시오. – Candide

+0

쿠키는 한 사이트에서만 작동하지만 다른 사이트에서는 정상적으로 작동하지 않습니다. 하나의 사이트에서 실제로 작동하기 때문에 브라우저가 될 수 없습니다. 문제는 더 이상 하나의 가상 디렉터리에있는 하나의 사이트가 다른 사이트에서 만든 쿠키를 볼 수 없으며, 이제는 한 사이트가 자체적으로 만든 쿠키를 볼 수 없게됩니다. 뭔가 다른 것이 있습니다. 뭔가 파산 된 것 같습니다. –

0

당신이 쿠키 (현재 1 분)에 설정 한 만료 시간은 약간 너무 짧습니다. 나중에 6 개월으로 설정하여 도움이되는지 확인하십시오.

+0

그래, 그건 문제가되지 않습니다. 문제는 쿠키를 가상 디렉터리에서 사용할 수 없다는 것입니다. 그들이 어쨌든 짧은 시간 동안 거의 400 명의 사용자가 될 수 있었지만, 마술처럼. –

관련 문제