인프런 커뮤니티 질문&답변

KUNI님의 프로필 이미지
KUNI

작성한 질문수

해외취업 ASP.NET Core 웹개발 기본 강좌

서버 시작전 로직

작성

·

229

0

서버를 최초로 실행했을때.

 

간단한 로직을 실행하고.  HomeController 의 public static 전역변수에 값을 넣어주려고 하는데.

 

어디서 해당 로직을 작성해야 할까요?

답변 5

0

SEJONG IT EDU님의 프로필 이미지
SEJONG IT EDU
지식공유자

잘못이해했었네요 ㅠ

먼저 startup.cs의 Configure함수에 app.UseSession(); 를 추가하셔야 합니다.

세션이 만료될 때 간단한 방법으로는 해당 세션의 null 여부를 체크하시거나 아니면 좀 더 디테일하게 보여주고 싶은 경우에는 아래 링크를 참조하시기 바랍니다. 

https://stackoverflow.com/questions/45764584/display-session-timeout-warning-message-before-session-expires-in-asp-net-core

아직 닷넷코어에서 세션이 만료되는걸 추적하는 메카니즘이 없습니다. 이에따라 위 링크에서는 임의로 만들어놓은 과정이네요.

0

KUNI님의 프로필 이미지
KUNI
질문자

질문을 잘못 이해하신거 같은데 ㅜㅜ

세션 만료될때.  실행하고 싶은 로직을 어디다 심어야 하나요?;;

0

SEJONG IT EDU님의 프로필 이미지
SEJONG IT EDU
지식공유자

안녕하세요. global.asax는 mvc이전버전인 webform에서 쓰이는 구조입니다. 

asp.net core > asp.net mvc > asp.net webform

 

startup.cs에 추가하신거 그대로 쓰시면 세션 사용 가능합니다.

0

KUNI님의 프로필 이미지
KUNI
질문자

아 말씀해주신데로. startup 에 static 전역변수로 선언하니 되네요 :)

 

그런데 혹시 세션 타임아웃 될때. 어떤 코드를 실행해주고 싶은데. 어디에 코드를 작성해야 할까요.

(구글링 해보니. global.asax 에 해당 타임아웃 이벤트가 있다는데, 강사님 따라서 프로젝트 생성하니. 해당 파일이 따로 안보이네요 ㅠ)

startup.cs 에 아래와 같이 하니. 세션 사용은 됩니다.

//  세션 사용

            services.AddSession(options =>

            {

                //  세션 유지 시간

                options.IdleTimeout = TimeSpan.FromMinutes(10);

            });

0

SEJONG IT EDU님의 프로필 이미지
SEJONG IT EDU
지식공유자

서버를 최초로 실행했을 때 startup.cs 파일을 제일 먼저 실행하게 되고 그 후에 라우팅룰에 따라 HomeController를 실행하게 됩니다. 어떤 로직을 생각하시는거세요?

KUNI님의 프로필 이미지
KUNI

작성한 질문수

질문하기