세션 상태 기능 페이지를 사용하여 브라우저 세션 간에 정보가 유지되는 동작을 구성할 수 있습니다.

UI 요소 목록

다음 표에서는 기능 페이지 및 작업 창에서 사용할 수 있는 UI 요소를 보여 줍니다.

기능 페이지 요소

요소 이름설명

사용 안 함

세션 상태를 사용하지 않습니다.

프로세스 내부

응용 프로그램이 실행되는 작업자 프로세스에 관리 코드 응용 프로그램의 세션 상태 데이터를 저장합니다. 이것은 기본 설정입니다.

사용자 지정

사용자 지정 공급자를 사용하여 ASP.NET 응용 프로그램의 세션 상태를 처리하도록 IIS를 구성합니다.

상태 서버

Windows Aspnet_state.exe 상태 서비스를 사용하고 응용 프로그램이 실행되는 작업자 프로세스 외부에 세션 상태를 저장합니다. 이 구성의 이점은 응용 프로그램의 작업자 프로세스가 재생될 때 세션 상태가 유지되는 것입니다. 중규모 웹 응용 프로그램에는 상태 서버를 사용하는 것이 좋습니다. 구성할 설정은 다음과 같습니다.

  • 연결 문자열 - 상태 서버에 연결하는 데 사용되는 연결 문자열을 설정합니다.

  • 시간 제한(초) - 연결이 유지될 시간을 초 단위로 설정합니다. 기본값은 10초입니다.

중요

out-of-process 세션 상태가 적용되려면 Windows 상태 서비스(Aspnet_state.exe)가 실행되어야 됩니다. 기본적으로 이 서비스는 ASP.NET을 설치하고 수동으로 시작되도록 구성한 경우 설치됩니다. 시작 동작은 자동으로 변경해야 합니다.

SQL 서버

세션 상태 데이터를 응용 프로그램이 실행되는 작업자 프로세스에 저장하는 대신 SQL Server 데이터베이스를 사용하여 저장하도록 IIS를 구성합니다. 이 구성의 이점은 응용 프로그램의 작업자 프로세스가 재생되거나 Windows 상태 서비스나 웹 서버가 중지되는 경우 세션 상태가 유지되는 것입니다. 구성할 설정은 다음과 같습니다.

  • 연결 문자열 - 상태 서버에 연결하는 데 사용되는 연결 문자열을 설정합니다.

  • 시간 제한(초) - 연결이 유지될 시간을 초 단위로 설정합니다. 기본값은 10초입니다.

중요

세션 상태에 대한 SQL Server를 구성하기 전에 서버에서 InstallSqlState.sql 스크립트를 실행해야 합니다. 기본적으로 이 스크립트는 systemroot\Microsoft.NET\Framework\V2.0.50727에 저장됩니다.

사용자 지정 데이터베이스 사용

세션 상태 데이터를 저장하는 데 사용자 지정 SQL Server 데이터베이스를 사용합니다.

모드

쿠키를 사용하여 세션 상태 데이터를 저장하는 방식을 정의합니다. 옵션은 다음과 같습니다.

  • 자동 검색 - 브라우저에서 쿠키를 지원하면 쿠키를 사용하고, 그렇지 않으면 쿠키를 사용하지 않습니다. 쿠키를 지원하는 것으로 알려진 데스크톱 브라우저의 경우, ASP.NET에서는 브라우저에서 쿠키를 지원하면 쿠키를 사용하려고 합니다. 자동 검색 쿠키 모드를 사용하는 경우 만료된 세션 ID가 다시 생성되어야 합니다. 이렇게 하면 웹 서버에서 토큰을 만료시키고 다시 생성할 수 있으므로 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 수 있는 시간이 줄어듭니다. 또한 시간 제한 값을 기본값 20분보다 작게 변경하는 것도 고려해야 합니다.

  • 쿠키 사용 - 사용자가 웹 사이트에 연결되어 있는 동안 세션 정보를 클라이언트 정보와 연결합니다. 쿠키는 HTTP 헤더에서 모든 요청과 함께 클라이언트와 웹 서버 간에 전달됩니다. 쿠키에는 리디렉션이 필요하지 않기 때문에 쿠키를 사용하는 방법은 쿠키를 사용하지 않는 방법보다 세션 상태를 추적하는 데 더 효율적입니다. 또한 쿠키를 사용하여 웹 페이지에 책갈피를 설정할 수 있으며, 한 사이트에서 다른 사이트로 이동한 다음 원래 사이트로 돌아오는 경우 쿠키에서 상태를 유지합니다.

참고

공격자가 쿠키를 캡처하여 웹 사이트 콘텐츠에 액세스할 수 있는 시간을 줄이기 위해 시간 제한 값을 기본값 20분보다 작게 변경하는 것을 고려해야 합니다.

  • 장치 프로필 사용 - 장치 프로필에서 쿠키를 지원하면 쿠키를 사용하고, 그렇지 않으면 쿠키를 사용하지 않습니다. 장치 프로필에서 쿠키를 지원하는 경우 사용자가 쿠키 지원을 사용할 수 없게 설정했는지에 관계없이 쿠키가 사용됩니다. 장치 프로필 사용 쿠키 모드를 사용하는 경우 만료된 세션 ID가 다시 생성되어야 합니다. 이렇게 하면 웹 서버에서 토큰을 만료시키고 다시 생성할 수 있으므로 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 수 있는 시간이 줄어듭니다. 또한 시간 제한 값을 기본값 20분보다 작게 변경하는 것도 고려해야 합니다.

  • URI 사용 - URI(Uniform Resource Identifier) 요청에 쿼리 문자열로 세션 ID를 포함시킵니다. 이렇게 하면 URI가 원래 요청된 URL로 리디렉션됩니다. 변경된 URI 요청이 세션 중 사용되므로 쿠키가 필요하지 않습니다. URI를 사용하는 경우 만료된 세션 ID가 다시 생성되어야 합니다. 이렇게 하면 웹 서버에서 토큰을 만료시키고 다시 생성할 수 있으므로 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 수 있는 시간이 줄어듭니다.

이름

쿠키의 이름을 설정합니다. 기본값은 ASP.NET_SessionID입니다.

시간 제한(분)

쿠키가 유지될 시간을 분 단위로 설정합니다. 기본값은 20분입니다.

만료된 세션 ID 다시 생성

해당 세션이 데이터베이스에 활성화되어 있지 않은 세션 ID를 거부하고 다시 발행하도록 IIS에 지시합니다. 기본적으로 이 기능은 쿠키를 사용하지 않는 세션 ID의 경우에만 지원되지만, 사용자 지정 세션 ID 관리자를 구현하여 쿠키/임의 세션 ID를 관리하기 위해 이 기능을 확장할 수 있습니다.

가장을 위해 호스팅 ID 사용

원격 연결에 Windows 인증과 호스트 프로세스 ID(ASP.NET 또는 Windows 서비스 ID)를 사용합니다.

작업 창 요소

요소 이름설명

적용

기능 페이지에서 변경한 내용을 저장합니다.

취소

기능 페이지에서 변경한 내용을 취소합니다.

참고 항목


목차