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 값입니다. true Windows 인증 및 호스트 프로세스 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 사용하는 경우 속성을 true 로 RegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 20분 기본값보다 작은 값으로 변경하는 Timeout 것도 고려해야 합니다. |
1 | UseCookies |
세션 ID는 사용자가 웹 사이트에 연결하는 동안 클라이언트의 HTTP 쿠키에 저장됩니다. 쿠키는 클라이언트와 웹 서버 간의 모든 요청의 HTTP 헤더에 전달되며 리디렉션이 필요하지 않으므로 세션 상태를 추적하는 데 더 효율적입니다. 또한 사용자가 사이트를 떠나 다른 사이트를 방문한 다음 원래 사이트로 돌아오는 경우 상태를 유지합니다. 참고: 잠재적 공격자가 쿠키를 Timeout 캡처하고 웹 사이트 콘텐츠에 액세스할 시간을 줄이도록 속성을 20분 미만의 기본값으로 변경하는 것이 좋습니다. |
2 | AutoDetect |
세션 ID는 브라우저와의 핸드셰이크가 쿠키가 저장될 수 있는지 확인한 후에만 클라이언트의 HTTP 쿠키에 저장됩니다. 참고: 모드를 AutoDetect 사용하는 경우 속성을 true 로 RegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 20분 기본값보다 작은 값으로 변경하는 Timeout 것도 고려해야 합니다. |
3 | UseDeviceProfile |
클라이언트 디바이스 프로필이 쿠키를 지원하는 경우 세션 ID는 클라이언트의 HTTP 쿠키에 저장됩니다. 그렇지 않으면 쿠키가 사용되지 않습니다. 디바이스 프로필이 쿠키를 지원하는 경우 사용자가 쿠키 지원을 사용하지 않도록 설정한 경우에도 사용됩니다. 이 설정을 사용하여 쿠키 없는 ID가 필요한 클라이언트(예: 모바일 브라우저)에서만 사용할 수 있도록 합니다. 참고: 모드를 UseDeviceProfile 사용하는 경우 속성을 true 로 RegenerateExpiredSessionId 설정해야 합니다. 이렇게 하면 웹 서버가 만료되고 토큰을 다시 생성할 수 있으므로 잠재적 공격자가 쿠키를 캡처하고 웹 서버 콘텐츠에 액세스할 시간을 줄입니다. 또한 속성을 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 의 이름을 지정해야 합니다. |
상속 계층 구조
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 클래스
웹 애플리케이션에 대한 빠르고 확장 가능하며 안전한 세션 상태 관리