2013-03-01 2 views
0

여기서 세션을 사용하지 않고 페이지 (예 : 성/성/이메일 등)간에 사용자 특정 데이터를 공유해야하는 상황이 발생했습니다..net에서 세션을 사용하지 않고 사용자 특정 데이터를 공유하는 방법

세션을 사용할 수없는 이유는로드 밸런서가 사용자의 요청을 처리하기 위해 다른 시스템을 할당하기 때문입니다.

따라서 회사에서는 세션을 사용하지 않도록 엄격하게 명시했습니다.

일부 제한 때문에 세션 저장에 datastore (sql)을 사용할 수 없습니다.

여기서 중요한 질문은 세션/쿠키/데이터 저장소를 사용하지 않고 어떻게 사용자 특정 데이터를 공유 할 수 있는지입니다.

나는 (분명히 권장되는 방법 아닌) 사용자 특정 정보를 가져 오기 위해 각 요청에 핑 데이터베이스에 하나의 옵션으로 남아 있어요

사람이 사용자 특정 정보를 공유 할 수있는 제안 도와 줄 수

페이지 전체에 걸쳐

참고 : 나는 MVC4를 사용하고 (면도기 엔진)

답변

1

나는 사용자 특정 정보를 (AN 권장 접근 방식이 분명하지 않은) 가져 오기 위해 각 요청에 핑 데이터베이스에 하나의 옵션으로 남아 있어요

실제로 권장되는 방법입니다. 그리고 데이터베이스에 많은 트래픽을 생성 할 수 있다고 생각되면 항상 결과를 캐싱 할 수 있습니다. 캐시에 사용자 별 키를 사용하여 사용자간에 정보가 섞이지 않도록주의하십시오. 노드 전체에 memcached과 같은 분산 캐시를 사용하는 것도 고려해 볼 수 있습니다.

+0

캐시는 사용자 특정 정보를 공유하는 데 사용할 수 없습니다. 캐시를 사용하여 사용자 별 데이터를 공유하는 방법을 명확히 할 수있는 예를 들려 줄 수 있습니까? –

+1

물론, 다음과 같이 사용할 수 있습니다 :'MemoryCache.Default [ "profile_"+ User.Identity.Name] = userSpecificInformation;'. 내 대답에서 설명했듯이 캐시에 사용자 특정 키를 사용해야합니다. 그게 다야. –

+0

+1 빠른 검색을 가능하게하는 memcached와 같은 저장소를 사용합니다. –

0

쿠키를 사용할 수 있습니다.

  • 브라우저와 서버간에 전송하는 동안 추가로드가 발생합니다.
  • 클라이언트 컴퓨터에 저장됩니다.
  • 사용자 정의 코드로 보안을 위해 데이터를 암호화/해독 할 수 있습니다.
+0

쿠키가 편안하지 않습니다. –

관련 문제