세션 상태 제어
업데이트: 2007년 11월
Microsoft ASP.NET에 제공되는 HttpSessionState 개체를 사용하면 사용자 세션 정보를 저장하여 여러 요청에 대해 사용할 수 있습니다. 강력하고 확장 가능한 ASP.NET 세션 관리 기능을 웹 팜에도 사용할 수 있습니다.
쿠키가 없는 세션 고려 사항
기본적으로 ASP.NET 세션 개체는 클라이언트측 쿠키를 사용하여 ID를 저장하고 이 ID는 서버 라운드트립에서 세션을 찾는 데 사용됩니다. 그러나 ASP.NET에서는 쿠키가 없는 세션 모드도 지원합니다. 이 모드에서는 세션 ID가 포함된 새 URL로 클라이언트가 리디렉션된 후 URL에서 세션 ID가 자동으로 구문 분석됩니다.
세션 상태를 사용하는 ASP.NET 모바일 웹 페이지의 경우 다음과 같은 사항을 고려해야 합니다.
일부 모바일 장치 및 게이트웨이에서는 쿠키를 지원하지 않습니다. 이러한 경우 웹 서버의 세션 관리 모드를 쿠키를 사용하지 않는 모드로 설정해야 합니다.
일부 모바일 장치에서는 쿠키가 없는 세션 관리를 통해 상대 URL이 리디렉션된 후 이러한 URL을 처리하는 데 문제가 생길 수 있습니다.
쿠키 대체 방법 사용
쿠키가 지원되지 않는 일부 모바일 장치의 경우 상태를 유지해야 하는 시나리오에 사용할 다른 방법을 찾아야 합니다. 예를 들어, 사용자가 페이지에 로그온하면 응용 프로그램에서 세션의 나머지 부분에 사용되는 로그온 ID를 할당할 수 있습니다. 일반적으로 쿠키는 이러한 형식의 인증, 즉 쿠키 기반 인증에 사용됩니다. 그러나 쿠키를 사용할 수 없는 장치에서는 쿠키 기반 인증을 사용할 수 없으므로 다른 상태 관리 메커니즘을 활용해야 합니다.
세션 상태
대체 방법 중 하나로 세션 상태를 사용할 수 있습니다. 세션 상태는 쿠키 없이 동작하도록 구성될 수 있으므로 사용자는 ID를 세션 상태에 유지할 수 있습니다. 그러나 이 기술을 사용하면 세션과 함께 정보가 만료되고 항상 세션 상태를 사용해야 한다는 단점이 있습니다.
숨겨진 변수
ASP.NET 모바일 웹 페이지에는 숨겨진 변수를 작성하기 위한 모바일 컨트롤은 없지만 대신 폼의 MobilePage 클래스에서 HiddenVariables라는 컬렉션이 제공됩니다. 이 컬렉션에 저장되는 모든 이름/값 쌍은 숨겨진 변수로 유지되며, 폼이 전송되면 HiddenVariables 컬렉션은 자동으로 이러한 숨겨진 변수로 다시 채워집니다.
이 대체 방법은 페이지의 숨겨진 변수를 사용합니다. 숨겨진 변수는 전송되는 대상 페이지가 같은 페이지인지 아니면 다른 페이지인지에 상관 없이 폼 전송의 일부로 자동으로 다시 전송됩니다.