2016-06-20 3 views
2

당신은 당신이 정의 할 수 application.cfm 또는 application.cfc 파일의 내부는 ColdFusion 세션을 설정하면 sessionTimeout 같은 :Coldfusion 세션이 연장되는 원인은 무엇입니까?

<cfapplication name = "appname" 
sessionTimeout = #CreateTimeSpan(0, 0, 30, 0)# <!--- 30min timeout ---> 
sessionManagement = "yes"> 

내가 ColdFusion에서 세션이 '갱신'때마다 '확장'또는 있다고 생각 :

  1. 사용자는 새로운 ColdFusion에서 템플릿로 이동 (A .CFM 파일)
  2. 사용자가 ColdFusion에서 템플릿을 새로 고침 (A .CFM 파일)
  3. 사용자는 골에 액세스 dfusion 구성 요소 (.cfc 파일) .cfc 파일에 cffunction을 실행하는 ajax 호출을 포함하여 어떤 방식 으로든. 본질적 '연장'- 다른 사용자 위와 같은 작업을 수행하는 경우 다른 말로

상기 작업이 수행 된 때로부터 30 분 만료 세션합니다 (sessionTimeout 가정은 상기 예에서처럼 30 분) 사용자가 해당 작업 중 하나를 수행 할 때마다 세션의 수명은 sessionTimeout입니다.

이해의 소리가 맞습니까? 누락 된 ColdFusion 세션을 '연장'하는 작업이 있습니까? 내가 열거 한 것들이 실제로 그들이 행동하고 세션을 '확장'한다고 생각하는 방식으로 행동합니까? 유사한

+0

더 잘 이해하려면 클라이언트/서버 측면에서 생각하고 http 요청과 같은 상태 비 저장 환경에서 상태를 유지하십시오. 클라이언트가 브라우저 인 경우 쿠키를 삭제하면 그 순간 세션이 손실됩니다. 서버는 당신이 더 이상 누구인지 모릅니다. –

+0

그렇습니다. 따라서 ColdFusion은 서버 측 세션 변수를 연결할 사용자를 알 수 있습니다. 기본적으로 서버가 지정한 시간이 지나면 ColdFusion은 쿠키와 관련된 세션이 너무 오래되거나 만료 된 것으로 간주합니다. (HTML/JS로 전달되기 전에 서버에 의해 처리되는) ​​cfm 페이지를 새로 고침하는 것과 같이 세션의'sessionTimeout'을 원래의'sessionTimeout' (다시 말하면 '갱신')으로 재설정하는 몇 가지 조치가 있습니다. 새 cfm 페이지 (서버에 도착 함) 및 cfc에 액세스 (또한 서버에 닿아 있음). 내가 놓친 것인지 궁금 할뿐입니다. – Ectropy

+0

ColdFusion에서 서버를 치는 것과 비슷한 것으로 (기본적으로) 세션에 "살아"있는 시간이 조금 더 주어집니다. – Ectropy

답변

3

뭔가가 여기에 질문을 받았다 : 알렉스의 말씀 Can we renew session in Coldfusion?

는 사실이다. 문서를 보면 쿠키없이 세션을 유지할 수있는 방법이 있습니다. 섹션 Using client and session variables without cookies을 확인하십시오.

SessionTracker를 통해 세션을 찾을 수 있다면 사용자 개입없이 세션을 확장한다고 생각할 수있는 유일한 방법은 다른 것입니다. 그것에 대해 좋은 게시물이 있습니다 : Advanced ColdFusion Session Management.

사실, 의견, 당신이를 통해 세션을 액세스 할 경우 내장 된 자바 방법, 당신이 그들을 확장 할 수 있음을 말한다 :

당신은 즉시 당신이 어떤을 액세스 할 때 참고 할 수 있습니다 이러한 방법을 통해 세션을 통과하면 "lastAccessed"타임 스탬프가 업데이트됩니다.

+0

흥미 롭습니다! 따라서 세션 추적기를 통해 세션에 액세스하여 세션의 수명을 연장 할 수 있습니다. 그것은 확실히 결코 생각하지 못했을 기술입니다! 세션을 갱신하는 4 가지 방법, 즉 cfm 새로 고침, 새 cfm 열기, ajax를 통한 cfc 액세스 및 sessionTracker를 통한 세션 액세스에 직접 액세스 할 수 있습니다. – Ectropy