답변:
Session.Abandon() 세션을 파괴 하고 이 Session_OnEnd 이벤트가 트리거됩니다.
Session.Clear()단지 모든 값을 제거 개체에서 (내용을). 동일한 키를 가진 세션은 여전히 살아 있습니다.
따라서을 사용 Session.Abandon()하면 특정 세션이 손실되고 사용자는 새 세션 키를 받게됩니다. 예를 들어 사용자가 로그 아웃 할 때 사용할 수 있습니다.
를 사용하여 Session.Clear(), 사용자가 (당신이 예를 들어 다시 로그인 사용자를 원하지 않는 경우) 동일한 세션에 남아있는 모든 세션 특정 데이터를 다시 설정합니다.
Session.Abandon()사용자가 다시 인증 (크롬, FF)을 가지고 있지 않았지만, 배치 세션 내 요구 사항을 충족 발급 새로운 하나 - Windows 인증을 사용하는 내부 응용 프로그램에 '로그 아웃'으로
사용자가 로그 아웃 할 때만 Session.Clear ()를 사용하면 보안 허점이 발생할 수 있습니다. 세션은 웹 서버에 관한 한 여전히 유효합니다. 그런 다음 스니핑하고 세션 ID를 가져와 해당 세션을 탈취하는 것은 합리적으로 사소한 문제입니다.
이러한 이유로 사용자를 로그 아웃 할 때 Session.Abandon ()을 사용하는 것이 더 안전하고 현명하여 세션이 파괴되고 새 세션이 생성됩니다 (로그 아웃 UI 페이지가 새 세션의 일부가 되더라도, 새 세션에는 사용자 세부 정보가 없으며 새 세션을 하이재킹하는 것은 새 세션을 갖는 것과 동일하므로 음소거됩니다.)