기존 시스템에서 새 앱을 만들었습니다. 내 응용 프로그램의 기능 중 하나는 잠금 프로세스가 필요했습니다. 사용자가 레코드를 선택하면 현재 시스템에 로그인되어있는 다른 모든 사용자의 옵션/단추 편집을 비활성화해야합니다. 나는 사용자가 onClick
을 활성화 할 수있는 기능을 가지고 있으며 (버튼 잠금 해제시) 또는 사용자가 로그 오프하면. 이 함수는 레코드에서 사용자를 제거합니다. 이 모든 것은 잘 작동하며 어떤 문제도 경험하지 못했습니다.사용자가 아직 로그인되어 있는지 확인하는 방법은 무엇입니까? Coldfusion 9/10
몇 가지 기록이 하루 이상 잠겨 있음을 발견 한 후. 그래서 이것은 몇 가지 문제를 일으켰습니다. 디버깅을 시도하고 내 응용 프로그램에서 문제를 탐지하려고했습니다. 내가 생각하기에 일부 사용자는 시스템을 로그 오프하지 않고 단순히 브라우저를 닫을뿐입니다. 이 상황에서 레코드 제거를 처리해야하는 함수는 절대로 트리거되지 않습니다. 이 문제를 어떻게 해결할 수 있을지 궁금합니다.
사용자가 더 이상 사용하지 않는지 확인할 수있는 방법이 있습니까? 가능한 해결책 중 하나는 예를 들어 매 5 분마다 ajax 호출을 보내는 것입니다. 이 호출이 false를 반환하면 잠금을 제거합니다. 나는 아직도 아약스 전화를 어디서 보낼지 잘 모르겠다. 해야 Application.cfc 또는 다른 곳으로 보내야합니까? 누군가가 나에게 몇 가지 예를 보여 주거나 도움이 될 것이라고 조언 할 수 있다면.
또한 내 앱의 Application.cfc 페이지를 설정하려고했지만 내 앱 페이지의 링크를 클릭하면 빈 페이지로 돌아갑니다. 다음은 내가 가지고있는 예입니다.
<cfcomponent output="false" extends="Map.Application" hint="Secondary application event handler">
<cffunction name="onRequeststart" access="public" returntype="boolean" output="false"
hint="Handles pre-page processing for each request.">
<cfargument name="thePage" type="string" required="true" hint="I am the template requested by the user."/>
<!--- This application.cfc is extending the root Application.cfc --->
<cfif SUPER.OnRequestStart(ARGUMENTS.thePage)>
<cfset REQUEST.AppName = "myApp">
<cfreturn true />
<cfelse>
<cfreturn false />
</cfif>
</cffunction>
</cfcomponent>
알아보기 https://www.bennadel.com/blog/1131-ask-ben-ending-coldfusion-session-when-user-closes-browser.htm –
@DanBracuk 나는이 기사를 읽었지만 여전히 그 해결책이 최선의 방법은 아니다. 일단 사용자가 브라우저를 닫으면 여전히 세션이 활성화되어 있지 않습니다. 그들이 브라우저를 다시 열고 페이지를 액세스 한 후에 만 브라우저를 닫은 후 다시 열어 본 시간이 잠겨 있는지 확인할 수 있습니다. 이것이 실제 문제입니다. 사용자가 더 이상 활성 상태가 아니면 잠금을 제거해야합니다. 참고 : 내 시스템은 데이터베이스에 로그인 한 사용자를 유지하지 않습니다. 이것은 오래된 시스템이며 최근에 내 앱을 구현했습니다. –