2011-03-26 5 views
0

웹 응용 프로그램에 이상한 문제가 있습니다. 나는asp.net/c#의 세션

Session["UserName"] = UserNameTextBox.Text 

같은 세션 변수에 값을 저장 할 때 알고 싶은이 특정 세션 변수 할당과 관련된 고유 ID가있을 것인가? 당신이 세션에서 저장 무엇이든 기대

답변

2

해당 사용자에 대해 고유 한 ID 이 할당됩니다. 사용자가 처음 사이트를 방문하면 고유 한 "세션 ID"가 할당되며 이는 일반적으로 웹 브라우저에 저장된 쿠키이지만 구성하면 URL에 세션 ID를 설정할 수도 있습니다 쿠키가 사용 중지되었습니다.

이 고유 세션 ID는 서버 측의 사용자 "세션"을 나타냅니다. 게시 한 것과 같은 코드를 사용하면 해당 사용자의 세션에 데이터가 추가 (또는 이미있는 경우 업데이트)되고 나중에 세션을 검색 할 수 있도록 세션이 활성 상태 인 동안 저장됩니다. 이 변수를 읽고 원하는만큼 쓸 수 있으며 항상 해당 사용자에게만 적용됩니다.

세션 변수 의 만료 시간은입니다. 일반적으로 IIS/Web.config는이 제한을 20 분으로 설정합니다. 사용자가 사이트에서 20 분 (또는 지정한 시간) 동안 아무 것도하지 않으면 서버 리소스를 절약하기 위해 해당 사용자의 세션이 지워집니다. 사용자가 페이지를 열어 두는 동안 세션을 활성화 상태로 유지해야하는 경우 (예 : 사용자가 양식을 작성하는 데 20 분 이상 소요될 수있는 경우) AJAX keep-alive requests과 같은 것을 조사해야합니다. 세션을 활성 상태로 유지하고 20 분 후에 삭제하지 않도록 서버에 알리는 간단한 AJAX 호출.

2

에서

덕분에 현재 사용자에게만 사용할 수 있습니다. 사이트의 각 사용자는 다른 세션 ID를 가져 오며이 ID는 서버가 사용자를 식별 할 수 있도록 쿠키와 함께 전송됩니다. @ Brad Christie가 언급 한 바와 같이 쿠키가 사용 중지 된 경우 주석 섹션에서 숨겨진 필드를 사용하거나 URL의 일부로 ID를 보내도록 세션을 구성 할 수 있습니다.

+0

메모하기 만하면 쿠키 일 필요는 없습니다. 때로는 URL에 있습니다 (예 : mysite.com/ (S ())/Default.aspx –

+0

@Brad Christie, 좋은 지적입니다. 답변을 업데이트했습니다. –