HttpSessionState.IsCookieless 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
세션 ID가 URL에 포함되는지 또는 HTTP 쿠키에 저장되었는지 여부를 나타내는 값을 가져옵니다.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
속성 값
true세션이 URL에 포함되어 있으면 이고, 그렇지 않으면 . false
예제
다음 코드 예제에서는 Web.config 파일에서 세션 특성을 true로 설정합니다 cookieless .
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
설명
ASP.NET 각 브라우저에서 세션을 고유하게 식별합니다. 기본적으로 세션의 고유 식별자는 브라우저의 만료되지 않는 세션 쿠키에 저장됩니다.
cookieless 구성 요소에 특성을 true 설정 하여 세션 식별자를 쿠키에 저장하지 않도록 지정할 수 있습니다.
메모
애플리케이션의 보안을 강화하려면 애플리케이션에서 사용자가 로그아웃할 수 있도록 허용해야 하며, 이때 메서드를 Abandon 호출해야 합니다. 이렇게 하면 URL의 고유 식별자를 사용하여 사용자 세션에 저장된 개인 데이터를 검색하는 원치 않는 원본의 가능성이 줄어듭니다.
ASP.NET 페이지의 URL에 고유한 세션 ID를 자동으로 삽입하여 쿠키 없는 세션 상태를 유지 관리합니다. 예를 들어 ASP.NET 고유한 세션 ID lit3py55t21z5v55vlm25s55를 포함하도록 다음 URL이 수정되었습니다.
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET 각 페이지를 브라우저로 보내기 직전에 링크에 세션 ID 값을 포함하여 요청된 모든 페이지에 포함된 링크를 수정합니다. 사용자가 사이트에서 제공하는 링크의 경로를 따르는 한 세션 상태가 유지됩니다. 그러나 사용자 에이전트가 URL을 다시 작성하는 경우 세션 상태 인스턴스가 손실됩니다.
세션 ID는 애플리케이션 이름 뒤에 있는 슬래시 뒤와 나머지 파일 또는 가상 디렉터리 식별자 앞에 URL에 포함됩니다. 이렇게 하면 ASP.NET 요청에 SessionStateModule 포함하기 전에 애플리케이션 이름을 확인할 수 있습니다.
기본적으로 쿠키 없는 세션에서 사용되는 세션 식별자는 재활용됩니다. 즉, 만료된 세션 ID로 요청이 이루어지면 요청과 함께 제공된 세션 ID를 사용하여 새 세션이 시작됩니다. 이 동작으로 인해 쿠키 없는 세션 ID가 포함된 링크가 검색 엔진 또는 다른 프로그램을 통해 여러 브라우저와 공유될 때 세션 데이터가 원치 않게 공유될 수 있습니다. 세션 식별자의 재활용을 사용하지 않도록 설정하여 여러 클라이언트에서 세션 데이터를 공유할 가능성을 줄일 수 있습니다. 이렇게 하려면 regenerateExpiredSessionId 구성 요소의 특성을 .로 설정합니다true. 이로 인해 만료된 세션 ID를 사용하여 쿠키 없는 세션 요청이 수행될 때 새 세션 ID가 생성됩니다. 만료된 세션 ID로 만든 요청이 HTTP POST 메서드를 사용하는 경우 ASP.NET 브라우저에 URL에 새 세션 식별자가 있는지 확인하기 위해 리디렉션을 수행하므로 regenerateExpiredSessionIdtrue 때 게시된 데이터가 손실됩니다.
메모
세션 데이터의 원치 않는 공유 가능성을 줄이기 위해 regenerateExpiredSessionId 특성을 설정 true 하지만, 값을 얻고 SessionID 서버에 대한 요청에 포함하여 다른 사용자의 세션에 액세스하는 원치 않는 소스로부터 보호하지 않습니다. 세션 상태에 개인 또는 중요한 정보를 저장하는 경우 SSL을 사용하여 브라우저와 서버를 포함하는 SessionID모든 통신을 암호화하는 것이 좋습니다.