2012-09-27 3 views
1

ASP.NET에서 쿠키 기반 세션을 완전히 수행 할 수있는 방법을 찾고 있습니다. 나는 그들에 복잡한 객체를 저장하려고하지 않고 단지 문자열 - 키 - 값 쌍을 저장하려고합니다.ASP.NET 쿠키 기반 세션, SessionStateModule이 있습니까?

나는 Play와 비슷한 것을 찾고 있습니다! 프레임 워크는 세션을 처리하지만 기본적으로 쿠키의 모든 세션 데이터를 인코딩하고 각 요청에 대해 암호화/암호 해독을 처리합니다.

피할 수 있다면 내 SessionStateModule을 작성하고 싶지는 않습니까?

감사

편집 : 쿠키는 (몇 식별자)를 처리 할 수있는 것보다 내가 더 많은 데이터를 저장할 필요가 없습니다 나는 여전히 각 세션에 구체적으로 키 - 값 쌍을해야합니다. 쿠키를 사용하여 더 많은 서버를 쉽게 추가 할 수있는 서버 상태 (프로세스 또는 데이터베이스 중 하나)를 유지해야하며 외부 응용 프로그램 (상태 서버/memcached/redis 등)에 덜 의존 할 수도 있습니다.

+0

브라우저는 소수의 쿠키만을 지원합니다. 더 많이 만들면 세션 쿠키 또는 중요한 쿠키가 손실 될 가능성이 있습니다. –

+0

저는 하나의 쿠키를 만들고 그 안에있는 모든 데이터를 인코딩하는 것에 대해 이야기합니다. 정확히 어떻게 플레이! 프레임 워크 세션 작동 –

답변

0

많은 양의 데이터를 만들지 않는 한 많은 양의 데이터를 쿠키에 저장할 수 없습니다.

키값 쌍으로 작업하려는 경우 memcached 또는 redis와 같은 캐시 사용을 고려했습니다. 또는 웹 팜에없는 경우 서버 캐시도 가능합니까?

0

쿠키가 존재하지 않는다고 생각합니다. 쿠키 (특히 최대 크기) 사용에 내재 된 제한 때문에 너무 약합니다.

그리고 이것이 귀하의 질문에 대답하지 않는 것을 알고 있지만, 이것을 위해 SessionStateModule을 구현하지 않을 것입니다. 이렇게하면 Session을 사용하는 타사 구성 요소 나 Session을 사용하는 향후 유지 관리 프로그래머가 쿠키에 부적절한 데이터 (예 : 너무 큰 데이터)를 저장하게 될 수 있습니다.

쿠키에 기본 값 (문자열, Int32, DateTime, ...) 만있는 키 - 값 쌍을 저장하는 API 지향형 API를 작성하는 것이 좋습니다.

API를 "쿠키 인식"(예 :

  • 다른 쿠키 (이름은 같지만이 (... 자바 스크립트, 이미지)를 필요로하지 않는 요청에 대해

    • 피하기 보내는 쿠키 : HttpCookie.Path 당신의 가능성을 제공하는 설정 다른 경로)를 선택하십시오. 이렇게하면 쿠키 크기를 줄일 수 있습니다.