캐싱 기능이있는 웹 응용 프로그램을 구현하려고합니다. 캐싱이 필요한 이유는 사용자가 온라인 과정에 액세스 할 수있게하는 응용 프로그램을 가지고 있기 때문입니다. 이제 사용자가 로그인하면 데이터베이스에 대해 사용자의 유효성을 검사합니다. 유효성을 확인한 후 사용자 ID와 코스 ID를 캐시에 20 분 동안 저장하여 그가 다시 요청하면 캐시 ID에서 사용자 ID와 코스 ID를 모두 가져올 수 있으며 유효한 경우 액세스 권한을 제공합니다. 몇 가지 이유로 ' 이 응용 프로그램에서는 세션 변수를 사용하지 않으므로 옵션이 아닙니다.HttpRuntime.Cache는 어디에서 데이터를 저장합니까?
이제 내 응용 프로그램의 캐싱 코드는 HTTP 처리기 (.ashx 파일) 안에 있습니다. 이제 aspx 페이지 에서처럼 캐시 객체를 호출 해 보았습니다.하지만 처리기가 아니고 웹 페이지가 아니기 때문에 캐시되지 않았습니다. 그래서,
Cache.Insert("Id", 123);
는 핸들러에서 작동하지 않습니다. 그래서 나는 HTTPRuntime.cache를 시도했다. 그러나 몇 가지 조사를 한 후에 HTTPRuntime.cache가 전체 응용 프로그램에 공통적이라는 것을 알았습니다. 나는 "전체 적용"을 완전히 이해하지 못합니다. 응용 프로그램에 액세스하는 다른 컴퓨터의 모든 사용자가 응용 프로그램을 공유한다는 의미입니까? 또는 모든 사용자가 한 컴퓨터에 액세스하는 것을 의미합니다. 후자라면 나도 괜찮아. HTTPRuntime.cache는 한 브라우저 (또는 한 대의 컴퓨터)의 데이터를 캐시하는 좋은 방법입니까, 아니면 데이터를 저장하기 위해 브라우저 캐싱을 구현하는 다른 방법이 있습니까?
캐싱과 SessionState는 완전히 다른 두 가지입니다. 서로 바꾸어 사용할 수는 없습니다. 그것은 당신이 영구적 인 sessionstate을 찾는 것처럼 들립니다. 일반적으로 db에 해당 데이터를 저장합니다. – leppie
나는 그것들을 교환해서 사용하지 않고있다. 20 분 동안 사용자 데이터를 저장하는 캐시 솔루션을 구현하려고합니다. 내가 알고 싶은 것은 HTTPRuntime.Cache 브라우저 (또는 특정 컴퓨터) 또는 다른 컴퓨터에서 작동하는 응용 프로그램의 모든 사용자에게 공통적 인 경우입니다. –