다음을 통해 공유


SessionStateSection 클래스

웹 애플리케이션의 세션 상태를 구성합니다.

구문

class SessionStateSection : ConfigurationSectionWithCollection  

메서드

다음 표에서는 클래스에서 노출하는 메서드를 나열합니다 SessionStateSection .

속성 설명
추가 ConfigurationSectionWithCollection에서 상속됩니다.
지우기 ConfigurationSectionWithCollection에서 상속됩니다.
가져오기 ConfigurationSectionWithCollection에서 상속됩니다.
GetAllowDefinition ( ConfigurationSection에서 상속됩니다.)
GetAllowLocation ConfigurationSection에서 상속됩니다.
제거 ConfigurationSectionWithCollection에서 상속됩니다.
RevertToParent ConfigurationSection에서 상속됩니다.
SetAllowDefinition ConfigurationSection에서 상속됩니다.
SetAllowLocation ConfigurationSection에서 상속됩니다.

속성

다음 표에서는 클래스에서 노출하는 속성을 나열합니다 SessionStateSection .

속성 Description
AllowCustomSqlDatabase 읽기/쓰기 boolean 값입니다. true 사용자가 속성에서 초기 카탈로그 값을 지정할 수 있으면 이고 SqlConnectionString , false그렇지 않으면 입니다. 기본값은 false입니다.
Cookieless 쿠키를 사용하여 클라이언트 세션을 식별하는 방법을 구성하는 읽기/쓰기 sint32 값입니다. 가능한 값은 설명 섹션의 뒷부분에 나열됩니다. 참고: 세션 상태는 클라이언트에 HTTP 쿠키를 저장하거나 URL에 세션 ID를 인코딩하여 클라이언트를 서버 세션과 연결하는 고유 ID를 저장할 수 있는 두 가지 방법이 있습니다. 세션 ID를 쿠키에 저장하는 것이 더 안전하지만 클라이언트 브라우저에서 쿠키를 지원해야 합니다. 다양 한 모바일 디바이스 등의 쿠키를 지원 하지 않는 클라이언트를 허용 하는 애플리케이션에 대 한 세션 ID는 URL에 저장할 수 있습니다. URL 옵션에는 몇 가지 단점이 있습니다. 사이트의 링크는 상대적이어야 하며 새 쿼리 문자열 값으로 세션 시작 시 페이지를 리디렉션해야 합니다. 또한 쿼리 문자열에 세션 ID를 노출하며, 여기서 보안 공격에 사용할 수 있습니다. 쿠키 지원이 부족한 클라이언트를 지원해야 하는 경우에만 쿠키 없는 모드를 사용해야 합니다.
CookieName 세션 식별에 사용할 HTTP 쿠키의 이름을 지정하는 읽기/쓰기 string 값입니다. 기본값은 "ASP.NET_SessionId"입니다.
CustomProvider 속성이 로 설정Custom되면 사용되는 Mode 속성에서 Providers 사용자 지정 공급자의 이름을 지정하는 읽기/쓰기 string 값입니다.
Location (에서 ConfigurationSection상속됨) 키 속성입니다.
Mode 세션 상태를 저장할 위치를 지정하는 읽기/쓰기 sint32 값입니다. 가능한 값은 설명 섹션의 뒷부분에 나열됩니다. 참고: 속성은 Mode 필수가 아니며 구성 계층 구조의 상위 수준 또는 기본값에서 상속할 수 있습니다. 그러나 구성 처리기는 항상 섹션에 대해 현재 상속된 값을 기반으로 모드를 작성합니다.
PartitionResolverType 속성이 또는 StateServer로 설정된 SQLServer 경우 Mode 여러 백 엔드 노드에서 세션 상태 데이터를 분할하는 확인자 형식의 정규화된 이름을 포함하는 읽기/쓰기 string 값입니다. 참고: 이 속성을 지정 SqlConnectionString 하면 및 StateConnectionString 속성이 무시됩니다. 에서 PartitionResolverType 반환된 연결 문자열은 요청의 나머지 부분에 대한 적절한 서버 위치에 연결하기 위해 모든 요청에 사용됩니다. 연결 문자열이 유효하지 않으면 ASP.NET 구성된 연결 문자열이 유효하지 않을 때 throw되는 것과 동일한 예외를 throw합니다.
Path (에서 ConfigurationSection상속됨) 키 속성입니다.
Providers 세션 상태 관련 서비스를 수행하는 공급자의 이름과 형식을 포함하는 ProviderSettings 값입니다.
RegenerateExpiredSessionId 읽기/쓰기 boolean 값입니다. true 만료된 세션 ID가 클라이언트에 의해 지정될 때 세션 ID가 다시 생성되면 이고, 그렇지 않으면 입니다 false. 기본값은 false입니다. 참고: 기본적으로 이 속성을 사용하도록 설정하면 쿠키 없는 URL만 다시 발급됩니다.
SectionInformation ConfigurationSection에서 상속됩니다.
SessionIDManagerType 세션 ID 관리자의 정규화된 형식을 지정하는 읽기/쓰기 string 값입니다.
SqlCommandTimeout SQL Server 세션 상태 모드를 사용하는 SQL 명령에 대한 제한 시간을 지정하는 읽기/쓰기 datetime 값입니다. 기본값은 30초입니다.
SqlConnectionString SQL Server 대한 연결 문자열을 포함하는 읽기/쓰기 string 값입니다. 기본값은 "data source=localhost;Integrated Security=SSPI"입니다. 이 속성은 속성이 로 Mode 설정된 SQLServer경우에 필요합니다.
StateConnectionString 세션 상태가 원격으로 저장되는 경우 서버 이름 및 포트를 지정하는 읽기/쓰기 string 값입니다. 기본값은 "tcpip=loopback:42424"입니다. 이 속성은 속성이 로 Mode 설정된 StateServer경우에 필요합니다. 참고: ASP.NET 상태 서비스가 세션 상태 정보를 저장하는 원격 서버에서 실행되고 있는지 확인합니다. 이 서비스는 ASP.NET 함께 설치되며 기본적으로 [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe 있습니다. 기본적으로 이 서비스는 수동 시작을 위해 구성됩니다. 시작 동작을 자동으로 변경해야 합니다.
StateNetworkTimeout 세션이 중단되기 전에 웹 서버와 상태 서버 간의 네트워크 연결이 유휴 상태로 유지될 수 있는 시간(초)을 지정하는 읽기/쓰기 datetime 값입니다. 이 속성은 속성이 로 Mode 설정된 StateServer경우에 필요합니다. 기본값은 10초입니다.
Timeout 비활성으로 인해 세션이 만료되는 시간(분)을 지정하는 읽기/쓰기 datetime 값입니다. 기본값은 20분입니다. 참고: 속성을 525,601분(1년)보다 큰 값으로 설정할 Timeout 수 없습니다.
UseHostingIdentity 읽기/쓰기 boolean 값입니다. trueWindows 인증 및 호스트 프로세스 ID(ASP.NET 또는 Windows 서비스 ID)가 원격 연결에 사용하도록 설정되어 있으면 이고, false 세션 상태가 클라이언트 가장을 사용할 수 있을 때 사용하는 경우 입니다. 기본값은 true입니다. 참고: 이 설정은 데이터베이스에 전체 도메인 또는 도메인 사용자 집합이 아닌 ASP.NET 작업자 프로세스 또는 애플리케이션 ID에 대한 액세스 권한만 부여하여 통합 Windows 인증 관리를 간소화합니다.

를 서브클래싱합니다.

이 클래스에는 하위 클래스가 없습니다.

설명

새 클라이언트가 웹 애플리케이션과 상호 작용하기 시작하면 세션 ID가 발급되고 세션이 유효한 시간 동안 동일한 클라이언트의 모든 후속 요청과 연결됩니다. 이 ID는 세션에 연결 된 클라이언트 요청에 대해 서버 쪽 상태를 유지 하기 위해 사용 됩니다. 클래스는 SessionStateSection ASP.NET 애플리케이션이 각 클라이언트를 대신하여 이 연결을 설정하고 유지 관리하는 방법을 제어합니다.

다음 표에서는 속성에 대해 가능한 값을 나열합니다 Cookieless . 기본값은 1(UseCookies)입니다.

키워드 Description
0 UseUri 세션 ID는 URI(Uniform Resource Identifier) 요청에 쿼리 문자열로 포함되며 URI는 원래 요청된 URL로 리디렉션됩니다. 변경된 URI 요청은 세션 기간 동안 사용되므로 쿠키가 필요하지 않습니다. 참고: 모드를 UseUri 사용하는 경우 속성을 trueRegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 20분 기본값보다 작은 값으로 변경하는 Timeout 것도 고려해야 합니다.
1 UseCookies 세션 ID는 사용자가 웹 사이트에 연결하는 동안 클라이언트의 HTTP 쿠키에 저장됩니다. 쿠키는 클라이언트와 웹 서버 간의 모든 요청의 HTTP 헤더에 전달되며 리디렉션이 필요하지 않으므로 세션 상태를 추적하는 데 더 효율적입니다. 또한 사용자가 사이트를 떠나 다른 사이트를 방문한 다음 원래 사이트로 돌아오는 경우 상태를 유지합니다. 참고: 잠재적 공격자가 쿠키를 Timeout 캡처하고 웹 사이트 콘텐츠에 액세스할 시간을 줄이도록 속성을 20분 미만의 기본값으로 변경하는 것이 좋습니다.
2 AutoDetect 세션 ID는 브라우저와의 핸드셰이크가 쿠키가 저장될 수 있는지 확인한 후에만 클라이언트의 HTTP 쿠키에 저장됩니다. 참고: 모드를 AutoDetect 사용하는 경우 속성을 trueRegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 20분 기본값보다 작은 값으로 변경하는 Timeout 것도 고려해야 합니다.
3 UseDeviceProfile 클라이언트 디바이스 프로필이 쿠키를 지원하는 경우 세션 ID는 클라이언트의 HTTP 쿠키에 저장됩니다. 그렇지 않으면 쿠키가 사용되지 않습니다. 디바이스 프로필이 쿠키를 지원하는 경우 사용자가 쿠키 지원을 사용하지 않도록 설정한 경우에도 사용됩니다. 이 설정을 사용하여 쿠키 없는 ID가 필요한 클라이언트(예: 모바일 브라우저)에서만 사용할 수 있도록 합니다. 참고: 모드를 UseDeviceProfile 사용하는 경우 속성을 trueRegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 20분 기본값보다 작은 값으로 변경하는 Timeout 것도 고려해야 합니다.

다음 표에서는 속성에 사용할 수 있는 값을 나열합니다 Mode . 기본값은 1(InProc)입니다.

키워드 Description
0 Off 세션 상태가 비활성화되어 있습니다.
1 InProc 세션 상태는 애플리케이션이 실행되는 작업자 프로세스에서 ASP.NET 애플리케이션에 대해 저장됩니다.

In-process 세션 상태는 가장 빠른 기본 제공 상태 스토리지 모드입니다. 그러나 세션에 더 많은 데이터를 저장하면 더 많은 웹 서버 메모리를 소비하므로 성능이 저하될 수 있습니다.

작업자 프로세스가 재활용되면 In-process 세션 상태 데이터가 손실됩니다. ASP.NET 애플리케이션이 세션 상태 데이터를 보존해야 하고 데이터 액세스 속도가 주요 관심사가 아닌 경우 데이터를 저장하기 위해 out-of-process 세션 상태 모드를 사용하는 것이 좋습니다.

지정된 세션 ID를 가진 모든 요청이 동일한 웹 서버로 전송되도록 보장하는 세션 ID 선호도 체계가 없으면 In-process 세션 상태를 웹 팜에서 사용할 수 없습니다. 참고: ASP.NET 상태 서비스(Aspnet_state.exe)가 in-process 세션 상태가 작동하려면 실행 중이어야 합니다. 이 서비스는 ASP.NET 함께 설치되며 기본적으로 [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber\aspnet_state.exe 있습니다. 기본적으로 이 서비스는 수동 시작을 위해 구성됩니다. 시작 동작을 자동으로 변경해야 합니다.
2 StateServer 세션 상태는 out-of-process ASP.NET 상태 서비스를 사용하여 상태 정보를 저장합니다. 이 구성의 장점은 애플리케이션의 작업자 프로세스가 재활용될 때 세션 상태가 유지된다는 것입니다. 이 설정을 사용하는 경우 속성에 StateConnectionString 연결 문자열을 지정해야 합니다.
3 SQLServer 세션 상태는 out-of-process SQL Server 데이터베이스를 사용하여 상태 정보를 저장합니다. 이 구성의 장점은 애플리케이션의 작업자 프로세스가 재활용되거나 ASP.NET 상태 서비스 또는 웹 서버가 다운될 때 세션 상태가 유지된다는 것입니다. 이 설정을 사용하는 경우 속성에 SqlConnectionString 연결 문자열을 지정해야 합니다. 참고: r 세션 상태 모드를 사용SQLServe하려면 세션 상태를 저장할 SQL Server 실행 중인 컴퓨터에서 InstallSqlState.sql SQL 스크립트(기본 .NET Framework 설치의 일부로 [drive:]\WINDOWS\Microsoft.NET\Framework\VersionNumber에 설치됨)를 실행해야 합니다. 새 저장된 프로시저를 사용 하 여 ASPState 라는 데이터베이스를 만들고 TempDB 데이터베이스에 새 ASPStateTempApplications 및 ASPStateTempSessions 테이블을 만듭니다.
4 Custom 세션 상태는 사용자 지정 데이터 저장소를 사용하여 세션 상태 정보를 저장합니다. 이 설정을 사용하는 경우 속성에서 사용자 지정 공급자 CustomProvider 의 이름을 지정해야 합니다.

상속 계층 구조

ConfigurationSection

ConfigurationSectionWithCollection

SessionStateSection

요구 사항

형식 Description
클라이언트 - Windows Vista의 IIS 7.0
- Windows 7의 IIS 7.5
- Windows 8의 IIS 8.0
- WINDOWS 10 IIS 10.0
서버 - Windows Server 2008의 IIS 7.0
- Windows Server 2008 R2의 IIS 7.5
- Windows Server 2012의 IIS 8.0
- Windows Server 2012 R2의 IIS 8.5
- WINDOWS SERVER 2016 IIS 10.0
제품 - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
MOF 파일 WebAdministration.mof

참고 항목

System.Web.Configuration.SystemWebSectionGroup.SessionState
System.Web.SessionState.SessionStateModeConfigurationSectionWithCollection 클래스
ProviderSettings 클래스
웹 애플리케이션에 대한 빠르고 확장 가능하며 안전한 세션 상태 관리