2016-06-24 2 views
6

Asp.net WebForms에는 세션이 시간 초과되거나 Session.Abandon()을 호출 할 때마다 global.asax에 Seesion_End()라는 이벤트가 있습니다.이 이벤트 핸들러가 실행되고, asp.net 코어에서 비슷한 종류의 동작이 필요합니다, 가능합니까?Session.Abandon() asp.net Core

+0

난 당신이 질문을 바꿔한다고 생각합니다. 대답하기 힘듭니다! – Thomas

+1

Session.Clear()를 시도 했습니까? – Tratcher

+0

세션이 자동으로 시간 초과 될 때 이벤트를 캡처해야합니까, 그 이벤트를 캡처해야하는 이유가 있습니까? 아니면 어떤 이벤트가 있습니까? –

답변

0

docs이 대부분을 차지합니다. 세션 시간 초과는 다음과 같이 설정됩니다.

services.AddSession(options => 
{ 
    options.IdleTimeout = TimeSpan.FromSeconds(10); 
}); 

그러나 쿠키가 있기 때문에 쿠키의 만료 날짜도 있습니다. 따라서 IdleTimeout이 만료되면 세션이 만료됩니다. 쿠키가 만료되면 세션이 사라집니다. 쿠키가 삭제되면 세션이 사라집니다.

Session.Clear()을 호출하면 source에 설명 된대로 세션을 그대로 유지합니다 (쿠키는 삭제되지 않음).

+0

Asp.net WebForms에는 Seesion_End()라고 불리는 것이 있습니다. 세션이 타임 아웃이거나 Session.Abandon()을 호출 할 때마다이 이벤트 핸들러가 실행됩니다. asp.net Core에서 비슷한 종류의 동작이 필요합니다. 그것은 가능한가? –

+0

따라서 프로그래밍 방식으로 세션을 무효화 할 수있는 방법은 없습니다. 사용자가 로그 아웃 버튼을 사용할 때? 유휴 시간 초과를 매우 낮게 설정하는 것 외에는 세션을 무효로하는 권장 방법은 무엇입니까? 또한 타임 아웃이 실제로 세션을 무효화했는지 확인하기 위해 어떤 값을 검사 할 수 있습니까? 어떻게 든 그것은 .net Core의 Session 구현이 완전히 구현되지 않았거나 여기에 뭔가 빠져있는 것 같습니다. – vm370

+0

@ vm370 위의 Tratcher에서 언급했듯이 코드에서 세션을 무효로하는 권장 방법은'Session.Clear()'를 호출하는 것입니다. 더 자세한 논의가 있습니다 : [세션 문제 27] (https://github.com/aspnet/Session/issues/27) – TallMcPaul

0

당신은 단순히 호출하여 세션을 취소 할 수 :

HttpContext.Session.Clear();

관련 문제