2010-01-11 2 views
1

현재 ASP.MVC 프로젝트에서 내 멤버십 구현을 사용하고 있습니다. 계정이 있고 계정에 1 명 이상의 회원이있을 수 있습니다.캐싱 계정 정보

캐싱중인 계정 정보를 따르는 최선의 방법이 무엇인지 잘 모르겠습니다. 현재 컨트롤러의 사용자 속성에서 거의 각 요청에 대한 계정 정보를로드하고 있습니다.

계정 정보를 캐시해야합니까? 그리고 최고의 장소, 쿠키 또는 세션이 어디에 있을까요?

답변

1

세션에 대해 상당히 강력하게 권장합니다. 그들은 잘 확장되지 않으며 웹/HTTP 유형의 아키텍처에 적합하지 않습니다. REST 자료가 마음에 들면 this REST article의 '주요 REST 원칙'을 참조하세요.

사용자 정보를 쿠키에 넣어 두는 것이 좋습니다. 과도하게하지 말고 꼭 필요한 정보 만 입력하십시오.

그리고 ASP.NET 양식 인증 쿠키에 중요한 정보를 유지하십시오. Forms Authentication article, "4 단계 : 티켓에 추가 사용자 데이터 저장"을 참조하십시오.

데이터베이스에서 나머지 데이터를 가져옵니다. premature optimization을 피하십시오.

+0

훌륭한 참고 자료 및 조언 Maxwell, 왜 세션이 잘 확장되지 않는지 설명해 주시겠습니까? – adriaanp

0

이러한 질문에 종종 해당하는 것처럼 대답은 "다릅니다"입니다.

소량의 문자열 데이터 만 저장하는 경우 쿠키를 사용해도됩니다. 제한 사항 (쿠키 당 4k, HTTP 헤더 한도)이 있으며 모든 요청 및 응답과 함께 유선을 통해 전송됩니다. 쿠키에 저장된 데이터에서 계정/회원 정보를 "다시 부풀려 야"할 수 있습니다. 사용자는 웹 사이트의 쿠키를 허용하지 않을 수 있습니다.

세션은 강력한 형식이므로 (다시 팽창하지 않음) 모든 요청/응답과 함께 전송되지 않습니다. 웹 저장소에 필요할 것으로 생각되는 경우 세션 저장소를 확장하는 몇 가지 옵션이 있습니다. 대부분의 중소 규모 사이트는 문제없이 세션을 사용합니다.