2012-06-04 3 views
3

캐싱 기능이있는 웹 응용 프로그램을 구현하려고합니다. 캐싱이 필요한 이유는 사용자가 온라인 과정에 액세스 할 수있게하는 응용 프로그램을 가지고 있기 때문입니다. 이제 사용자가 로그인하면 데이터베이스에 대해 사용자의 유효성을 검사합니다. 유효성을 확인한 후 사용자 ID와 코스 ID를 캐시에 20 분 동안 저장하여 그가 다시 요청하면 캐시 ID에서 사용자 ID와 코스 ID를 모두 가져올 수 있으며 유효한 경우 액세스 권한을 제공합니다. 몇 가지 이유로 ' 이 응용 프로그램에서는 세션 변수를 사용하지 않으므로 옵션이 아닙니다.HttpRuntime.Cache는 어디에서 데이터를 저장합니까?

이제 내 응용 프로그램의 캐싱 코드는 HTTP 처리기 (.ashx 파일) 안에 있습니다. 이제 aspx 페이지 에서처럼 캐시 객체를 호출 해 보았습니다.하지만 처리기가 아니고 웹 페이지가 아니기 때문에 캐시되지 않았습니다. 그래서,

Cache.Insert("Id", 123); 

는 핸들러에서 작동하지 않습니다. 그래서 나는 HTTPRuntime.cache를 시도했다. 그러나 몇 가지 조사를 한 후에 HTTPRuntime.cache가 전체 응용 프로그램에 공통적이라는 것을 알았습니다. 나는 "전체 적용"을 완전히 이해하지 못합니다. 응용 프로그램에 액세스하는 다른 컴퓨터의 모든 사용자가 응용 프로그램을 공유한다는 의미입니까? 또는 모든 사용자가 한 컴퓨터에 액세스하는 것을 의미합니다. 후자라면 나도 괜찮아. HTTPRuntime.cache는 한 브라우저 (또는 한 대의 컴퓨터)의 데이터를 캐시하는 좋은 방법입니까, 아니면 데이터를 저장하기 위해 브라우저 캐싱을 구현하는 다른 방법이 있습니까?

+0

캐싱과 SessionState는 완전히 다른 두 가지입니다. 서로 바꾸어 사용할 수는 없습니다. 그것은 당신이 영구적 인 sessionstate을 찾는 것처럼 들립니다. 일반적으로 db에 해당 데이터를 저장합니다. – leppie

+0

나는 그것들을 교환해서 사용하지 않고있다. 20 분 동안 사용자 데이터를 저장하는 캐시 솔루션을 구현하려고합니다. 내가 알고 싶은 것은 HTTPRuntime.Cache 브라우저 (또는 특정 컴퓨터) 또는 다른 컴퓨터에서 작동하는 응용 프로그램의 모든 사용자에게 공통적 인 경우입니다. –

답변

4

캐시는 웹 서버 메모리에 저장됩니다.

이해해야합니다. the differences between Viewstate, Cache and Session

+0

신속한 응답을 보내 주셔서 감사합니다. 문서를 검토했으며 명확하게 차이점을 설명합니다. 세션 상태 및 캐시 그러나 브라우저 캐시는 어떻습니까? 브라우저 캐시에 사용자 정보를 저장할 수 없습니까? 여러 사용자가 단일 컴퓨터 (또는 브라우저)에서 공유 할 수 있습니다. –

+0

@ Abhi.Net 해당 문장에서 "사용자"를 정의하십시오 ... "사용자 계정"(예 : 도메인 사용자)을 의미하는 경우 해당 사용자의 데이터는 의도적으로 분리됩니다. 사람들이 * 응용 프로그램 *에 로그인/로그 아웃했다는 것을 의미하면 "localstorage"를 통해 가능한 일이있을 수 있습니다. 하지만 그것은 자바 스크립트 질문입니다. –

+0

내 경우에는 사용자가 "사용자 계정"을 의미합니다. JavaScript를 통해 구현하는 것은 의문의 여지가 있습니다. "데이터가 의도적으로 분리되어 있다는 것은 무엇을 의미합니까? 내가 수집하는 것에서 .NET 코드를 통해 브라우저 캐시에 사용자 정보를 저장할 수 없다는 것입니다. 내가 맞습니까? 그렇다면 내가 시도하는 것을 성취 할 수있는 최선의 방법은 무엇이라고 제안하겠습니까 세션, 쿠키 ....? –

관련 문제