OutSystems를 통한 애플리케이션 측 세션 제한 시간 제어

OutSystems의 세션 제한 시간 변경은 일반적으로 ASP입니다.NET 설정 파일에서 수행됩니다.
하지만 고장 슛 등으로 개발자의 엔지니어만 변경하는 경우도 있다.
이번에는 이 용도로 사용할 수 있는 Forge 구성 요소에 대해 설명합니다.
간단한 논리이기 때문에 Visual Studio만 있으면 Forge를 설치할 수 없는 환경에서도 같은 Extension을 만들 수 있을 것이다.

작업 확인 환경


Personal Environment(Version 11.7.3 (Build 5968))
Service Studio(Version 11.6.30)
Browser Session Timeout(Version 2.0.1)

Forge 구성 요소


Browser Session Timeout
https://www.outsystems.com/forge/component-overview/1365/browser-session-timeout
C#로 작성된 Extension입니다.
이 문장에 나타난 동작 명칭은 이 구성 요소의 것이다.

제한 시간 값 변경


SetSession TimeOut Action을 사용하여 현재 세션의 시간 초과 값을 수정합니다.
매개변수는 현재 세션에서 설정할 제한 시간 값을 분수로 지정합니다.이 시간 초과, 요청이 없으면 세션이 시간 초과됩니다.

1분 동안 시간을 초과한 예.
현재 세션의 시간 초과 값을 확인하면 GetSession TimeOut Action이 표시됩니다.

지금 세션 비활성화


매개 변수가 없는 ClearSession Action을 호출하면 세션 변수가 지워지고 사용자가 로그아웃됩니다.
실제로 나는 이렇게 스크린 액션을 제작하고 테스트했다.

그런 다음 ClearSession이 호출되면 GetUserId는 로그인한 사용자의 Id(=는 일반적으로 로그인 중)를 반환합니다.
하지만 그 후(Preptaration이 이동한 후) Security Exception이 발생했고 세션 변수도 삭제되었습니다.문서에서 몰라요. 시체가 있을 수도 있어요.

C#의 소스 코드 확인


각 Action에 해당하는 C# 코드의 주요 부분을 발췌합니다.
.NET의 시스템입니다.Web.HttpContext.Current.Session.타임아웃에 대한 얇은 스피커로 제작된 것 같아요.
SetSession TimeOut
HttpContext.Current.Session.Timeout = ssMinutes;
GetSession Time Out(ssMinutes는 Output Parameter)
ssMinutes = HttpContext.Current.Session.Timeout;
ClearTimeOut
HttpContext.Current.Session.Clear();

사용 안 함으로 설정되어 있지만 다음 액세스 시에는 Security Exception 이 발생하지 않습니다.


Persistent Login을 사용하면 시간 초과가 발생한 다음 액세스가 자동으로 다시 로그인되고 Security Exception이 발생하지 않습니다.
Security Exception 발생 시 장애가 발생한 슛은 이 기능을 사용할 때 주의하십시오.
(Persistent Login은 쿠키를 사용하여 일정 기간 사용자 로그인을 유지하는 구조입니다.
기본 로그인 화면에서 "Remember me"확인란을 넣으면 이 기능을 사용하여 로그인)

좋은 웹페이지 즐겨찾기