2011-03-29 6 views
0

어쨌든, 내 주요 관심사는 세션을 사용하고 있습니다. 난 항상 당신이 다음 문을 사용하는 경우 (안 나는 것 있음) 인상을 봤는데 : 당신은 특정 값을 보유 3 개 새로운 세션 쿠키를 만드는 것쿠키 및 세션 상태 개체

Session["newVar1"] = "a new session variable"; 
Session["newVar2"] = "a new session variable"; 
Session["newVar3"] = aLargeVariableThatHoldsLotsOfData; 

. 하지만 내 asp 서은 실제로 세션 상태 개체에 3 개의 새 변수를 만들고 ASP는 고유 한 세션 ID (쿠키로?)을 응답으로 전달한다는 것을 나타내며이 ID를 얻습니다. 당신의 세션 상태 개체와 ID가 (IIS가 메모리 .. 저장 한 것을?) 그 다음 요청과 연관 :

는 ... 각 사용자의 에 대해 고유 한 세션 ID를 포함하는 세션 상태 개체 를 생성 세션. 이 ID는 응답의 일부로 브라우저에 전달 된 후 다음 요청으로 서버로 반환됩니다. 그런 다음 ASP.NET 은 세션 ID를 사용하여 요청과 연결된 세션 상태 개체를 가져올 수 있습니다.

많은 트래픽이있는 웹 사이트에는 이상적이지 않습니다. 수천, 수천 개의 웹 사이트 당 세션 상태 인스턴스를 저장하고 유지 관리하는 서버는 너무 많은 과부하 상태 인 것처럼 보입니다.
나는 내 자신의 일이 무엇인지 궁금해하고 있는데, 문제가 있습니다. 내 컴퓨터의 어느 곳에서나 내 사이트의 쿠키를 찾을 수 없습니다 (IE/windows xp). 나는 this yahoo answer에 따라 C:\Documents and Settings\nicholasr\Cookies\C:\Documents and Settings\nicholasr\Local Settings\Temporary Internet Files을 확인했습니다. IE 쿠키도 저장됩니다. 클라이언트에 인증 쿠키를 저장하는 응용 프로그램에서 티켓 인증을 사용하고 있으므로 내 사이트의 쿠키가 어딘가에 있어야합니다 ..
내가 묻는 것 같아요 :
1) 세션 상태가 배후에서 작동합니다.
2) IE에서 내 사이트의 쿠키를 어디에 저장합니까? > <

답변

4

GUID를 나타내는 단일 세션 쿠키가 있습니다. 세션 값 자체는 서버에 저장됩니다. 그래서 쓸 때 :

Session["newVar1"] = "a new session variable"; 
Session["newVar2"] = "a new session variable"; 
Session["newVar3"] = aLargeVariableThatHoldsLotsOfData; 

이렇게 보일 수있는 HTTP 쿠키는 클라이언트에게 전송됩니다. 이 쿠키는 실제 값이 아닌 id 만 포함합니다. 실제 값은 web.config의 <sessionState mode=""에 따라 서버 메모리, 별도 프로세스 또는 SQL Server에 저장 될 수 있습니다. 그런 다음 나중에 클라이언트가 다른 요청을 보낼 때이 쿠키 ID를 서버에 보내고 주어진 ID를 사용하여 서버가 실제 값을 가져옵니다.

클라이언트 브라우저는 해당 쿠키를 메모리에 저장합니다. 즉, 쿠키를 닫으면 세션 쿠키가 지속되지 않으므로 세션이 손실됩니다.

+0

Thx Darin. 내가이 쿠키를 어디에서 찾을 수 있는지 아십니까? windows xp/IE7 –

+0

@ Nicklamort, 찾을 수 없습니다. 그것은 브라우저의 메모리에 있으며 각 요청과 함께 보냈습니다. 어디에도 저장하지 마십시오. FireFox에서 Fiddler 또는 FireBug와 같은 HTTP 분석기를 사용하여 각 요청에이 값이 어떻게 추가되는지 확인할 수 있습니다. –

+0

@ Daarin Oh snap .. 내 auth 쿠키도 마찬가지라고 생각합니다. 대단히 감사합니다! 큰 도움 :) –