2011-09-04 1 views
25

제발 하나의 세션이 실제로 asp.net에서 어떻게 작동하는지 제안 해 주시겠습니까? 세션의 일부에서 혼란스럽고 간단히 알고 싶습니다. 따라서 나를 안내하십시오.세션이 asp.net에서 어떻게 작동합니까?

+2

이 코드를 읽기 위해보십시오. 프로젝트 문서 http://www.codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net – kfuglsang

답변

45

ASP.NET은 쿠키를 사용하여 사용자를 추적합니다. 과 같은 클라이언트에 쿠키가 처음 전송 될 때 세션에 무언가를 쓰려고 할 때. 이 쿠키는 후속 요청에서 클라이언트가 보냅니다. 이 쿠키 덕분에 서버는 클라이언트를 식별하고 연관된 세션 데이터를 쓰거나 읽습니다. 이 쿠키는 영속적이지 않고 (브라우저 재시작 후에도 지속되지 않음) 클라이언트 스크립트가 액세스 할 수 없다는 의미의 HttpOnly 플래그와 함께 방출됩니다.

쿠키 외에도 숨겨진 필드를 사용하거나 각 요청의 쿼리 문자열에 세션 ID를 추가하도록 ASP.NET을 구성 할 수 있습니다.

세션의 기본 아이디어는 실제 데이터가 서버의 어딘가에 저장되고 클라이언트가 각 요청에 대해 ID를 보내 서버가 데이터를 찾을 수있는 위치를 알 수 있다는 것입니다. 인 - PROC

  • :

    기본적으로 실제 세션 데이터가 저장 될 수있는 3 곳이 있습니다 세션이 응용 프로그램의 메모리 (에 저장되어 빠른하지만 당신은 서버에 여러 서버가있는 경우 팜이 작동하지 않음)

  • Out-of-Proc : 데이터는 State Service가 설치된 별도의 서버에 저장됩니다 (데이터는 별도의 컴퓨터 메모리에 저장되므로 여러 웹 서버에서 작동 할 수 있음). 웹 팜)
  • SqlServer : 데이터가 SQL Server에 저장됩니다 (세션 데이터로는 가장 느리지 만 가장 안정적입니다. SQL Server 데이터베이스에 저장되어 Out-Of-Proc에서 발생하지 않는 세션 서버가 손상된 경우이를 처리 할 수 ​​있습니다.
  • 사용자 지정 구현 : ASP.NET의 확장 성 덕분에 자체 세션 공급자 및 저장소를 작성할 수있었습니다 당신이 좋아하는 곳 어디서나 데이터.

여기는 MSDN의 ASP.NET Session State을 탐구하는 좋은 기사입니다.

4

세션 :이 세션 수단의 서버는 세션 데이터를 생성 한 세션 ID를 생성 설치 1.

[서버 측에 저장된]. [SessionID가 서버의 State Provider에 저장된 세션 데이터]

2. 서버 서버의 SessionID를 클라이언트의 브라우저로 반환합니다.

3. 반환 된 SessionID를 쿠키에 저장할 수 있습니다.

4.Upcoming SessionID와 연결된 후속 요청은 서버 데이터에 액세스 할 수 있습니다.

참고 : 현재 브라우저 세션 및 사용자 전용 세션.