ASP.NET 세션 연장: 실용적인 접근 방식
원활한 웹 애플리케이션 경험을 위해서는 활성 사용자 세션을 유지하는 것이 중요합니다. 비활성으로 인해 세션이 조기 만료되면 워크플로가 중단되고 데이터가 손실될 수 있습니다. 이 문서에서는 이러한 일반적인 문제를 방지하기 위해 시간 제한 AJAX 호출을 사용하는 솔루션을 제시합니다.
AJAX로 세션 유지
HTTP 요청을 서버에 주기적으로 보내면 세션의 타임스탬프가 효과적으로 새로 고쳐져 만료가 방지됩니다. 이 가벼운 방법은 사용자 상호 작용 중단을 최소화합니다.
세션 새로 고침 처리기 구현
간단한 HTTP 핸들러는 GET 요청을 처리하고 세션 타임스탬프를 업데이트합니다. 기본 구현은 다음과 같습니다.
<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } }</code>
이 핸들러를 web.config
:
<code class="language-xml"><httpHandlers> <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" /> </httpHandlers></code>
예약된 AJAX 호출을 위한 JavaScript
클라이언트측 JavaScript는 SessionHeartbeat.ashx
핸들러에 대한 시간 제한이 있는 AJAX 호출을 실행합니다. 이 jQuery 예제는 프로세스를 보여줍니다.
<code class="language-javascript">function setHeartbeat() { setTimeout("heartbeat()", 5*60*1000); // Every 5 minutes } function heartbeat() { $.get( "/SessionHeartbeat.ashx", null, function(data) { //$("#heartbeat").show().fadeOut(1000); // Optional visual feedback setHeartbeat(); }, "json" ); }</code>
시각적 피드백 추가(선택 사항)
세션 새로 고침을 확인하기 위해 깜박이는 아이콘과 같은 시각적 표시기를 통합하여 사용자 경험을 향상합니다. 이 예에서는 하트 아이콘을 사용합니다.
<code class="language-javascript">// Animate a heart icon function beatHeart(times) { var interval = setInterval(function () { $(".heartbeat").fadeIn(500).fadeOut(500); }, 1000); // Beat every second setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100); }</code>
요약
전용 핸들러에 대한 시간 제한 AJAX 호출을 사용하면 활성 ASP.NET 세션을 유지 관리하기 위한 강력하고 눈에 거슬리지 않는 방법이 제공됩니다. 이 간단한 기술은 조기 세션 만료를 방지하여 원활하고 중단 없는 사용자 경험을 보장합니다.
위 내용은 비활성으로 인한 조기 ASP.NET 세션 만료를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!