>백엔드 개발 >C++ >비활성으로 인한 조기 ASP.NET 세션 만료를 방지하려면 어떻게 해야 합니까?

비활성으로 인한 조기 ASP.NET 세션 만료를 방지하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-13 06:12:41687검색

How Can I Prevent Premature ASP.NET Session Expiration Due to Inactivity?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.