ASP의 기본 세션 만료 시간은 20분으로 많은 경우 충분하지 않습니다.오늘은 다시 로그인하라는 고객의 요청이 많아 세션이 필요한 경우를 위해 이 글을 준비했습니다. 만료 시간이 프로그램에 설정되어 있지 않으면 세션은 IIS에서 설정한 만료 시간에 따라 실행됩니다. IIS의 기본 세션 만료 시간은 20분입니다.
시간 설정이 먼저 이루어져야 합니다.
예를 들어
다음과 같이 코드 코드를 복사합니다.
Session.Timeout=30 'SEESION은 30분 동안 유효합니다.
세션(ID)=Rs(ID)
세션(이름)=Rs(이름)
세션(패스)=Rs(패스
Session.Timeout 속성을 사용하여 제한 시간 설정
ASP 응용 프로그램에 로그인한 사용자가 시스템 기본 시간 내에 다른 작업을 수행하지 않으면 설정된 시간이 지나면 사용자의 Session이 자동으로 취소되므로 시스템 리소스가 낭비되는 것을 방지할 수 있습니다. Session 개체의 TimeOut 속성을 사용하여 만료 시간을 분 단위로 설정할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
Session.TimeOut=최대 시간
예제 코드: (5.asp) 페이지, 이 예제에서는 세션 종료를 제어하는 방법을 보여줍니다.
다음과 같이 코드 코드를 복사합니다.
<%@ 언어=vbscript %>
<% session.timeout=60 %>
<html>
<head><title>세션 종료 시간 제어</title><head>
<본문>
<%
who = 세션.세션ID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog who & : & CurrentPage
Response.write <center>귀하의 세션 ID는 다음과 같습니다: & who & <p>
Response.write 현재 방문 중인 페이지의 경로는 다음과 같습니다: & CurrentPage & <p>
세션(I)=이면
세션(i)=1
또 다른
세션(i)=세션(i)+1
종료하면
세션.포기
Response.write 이 페이지는 귀하에 의해 세션(i) 및 횟수만큼 새로 고쳐졌습니다. </centr>
%>
Asp.net 응용 프로그램에서는 많은 사람들이 세션 만료 설정에서 충돌을 겪게 됩니다. 그 중 세션 만료 시간을 설정하는 방법에는 네 가지가 있습니다.
1. 글로벌 웹사이트(즉, 서버) 수준
IIS-Website-Properties-Asp.net-구성 편집-상태 관리-세션 시간 초과(분)-120으로 설정합니다. 즉 2시간입니다. 즉, 현재 사용자가 120분 후에도 작동하지 않으면 세션이 자동으로 만료됩니다. .
2. 웹사이트 수준
IIS - 웹 사이트 - 특정 웹 사이트(예: DemoSite) - 속성 - Asp.net에는 두 가지 옵션이 있습니다. 하나는 전역 구성을 편집하는 것이고 다른 하나는 구성을 편집하는 것입니다.
글로벌 구성을 편집하면 이전 구성과 동일해집니다.
구성을 편집하면 현재 웹사이트에만 적용됩니다. 서버에는 독립적인 웹사이트가 많이 있을 수 있기 때문입니다.
1. 계속해서 상태 관리 - 세션 시간 초과(분) - 360, 즉 360분으로 설정을 선택합니다. 효과는 위와 동일하지만, 현재 웹사이트에서만 효과가 나타납니다.
2. 신원 인증-양식-쿡 시간 제한, 12시간인 12:00:00을 선택합니다. 다음과 같은 8가지 옵션을 사용할 수 있습니다.
00:15:00
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00
1:00:00:00
즉, 최대값은 24시간이고 최소값은 15분입니다. 이것이 기본 구성입니다. 애플리케이션에서 자유롭게 사용자 정의할 수 있습니다.
3. 적용 수준
범위가 현재 애플리케이션으로 제한된다는 점을 제외하면 웹사이트 관리와 동일합니다.
4. 페이지 수준
특정 페이지에서 Session.Timeout = 30;을 설정하면 특정 페이지의 세션 만료 시간을 일시적으로 수정할 수 있습니다.
세션 만료 시간을 확인하려면 다음을 사용할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
그중 설정 2와 3은 Web.config에 반영됩니다.
다음과 같이 코드 코드를 복사합니다.
일반 사본을 클립보드 인쇄로 보시겠습니까?
<?xml 버전=1.0?>
<구성>
<시스템.웹>
<인증 모드=양식>
<forms name=AuthLogin loginUrl=/Login.aspx protection=모든 시간 초과=360 SlidingExpiration=true/>
</인증>
<sessionState 모드=InProc cookieless=false 시간 초과=20 />
</system.web>
<위치 경로=Login.aspx>
<시스템.웹>
<인가>
<사용자 허용=* />
</인증>
</system.web>
</위치>
</구성>
<?xml 버전=1.0?>
<구성>
<시스템.웹>
<인증 모드=양식>
<forms name=AuthLogin loginUrl=/Login.aspx protection=모든 시간 초과=360 SlidingExpiration=true/>
</인증>
<sessionState 모드=InProc cookieless=false 시간 초과=20 />
</system.web>
<위치 경로=Login.aspx>
<시스템.웹>
<인가>
<사용자 허용=* />
</인증>
</system.web>
</위치>
</구성>
위 4가지 설정의 우선순위는 페이지 수준 > 애플리케이션 수준 > 웹사이트 수준 > 서버 수준입니다. 즉, 페이지가 20분으로 설정되고 웹사이트가 120분으로 설정되면 당연히 20분이 유효 만료 시간이 됩니다.
주목할만한 또 다른 점.
두 번째 설정에서는 세션 시간 초과(SessionState)를 120분으로 설정하고, 동시에 양식 인증을 사용합니다. 즉 15분인 00:15:00으로 설정하며, SlidingExpirationo는 실제 세션 만료는 무엇입니까? 효력이 발생하는 시간은?
유효한 결과는 SessionState 설정(120분)입니다.
세션 만료 시간을 설정했지만 적용되지 않는 경우 위 구성을 확인하세요.
온라인에서 찾은 다른 방법
1. 운영 체제: Windows Server 2003
단계: 시작->관리 도구->인터넷 정보 서비스(IIS) 관리자->웹 사이트->기본 웹 사이트->속성을 마우스 오른쪽 버튼으로 클릭->홈 디렉터리->구성->옵션->세션 상태 활성화->세션 시간 초과(여기) 원하는 시간 제한을 분 단위로 설정하세요. 좋아요.
2. ASP.NET 애플리케이션에서 세션 만료 시간 설정
ASP.NET과 같은 웹 응용 프로그램에서는 세션이 사용자 상태를 저장하는 데 사용되는 일반적인 방법이지만 서버 메모리 공간이 제한되어 있으므로 세션 만료 시간 설정이 필요합니다. ASP.NET에서 세션 만료 시간을 설정하는 방법은 매우 간단합니다. web.config 구성을 수정하기만 하면 됩니다.
구체적인 수정 방법은 다음과 같으며, web.config에서 다음과 같이 구성합니다.
다음과 같이 코드 코드를 복사합니다.
<시스템.웹>
<sessionState 모드=InProc 시간 초과=30/>
</system.web>
이것이 의미하는 바는 세션 만료 시간이 30분이라는 것입니다. 즉, 현재 사용자가 30분 후에도 조작하지 않으면 세션이 자동으로 만료됩니다.
3. Session을 호출하는 cs 페이지에서 Load 이벤트에 다음과 같이 작성합니다.
다음과 같이 코드 코드를 복사합니다.
세션.시간 초과 = 30;
4. asp.net 상태 서비스에 세션 저장
다음과 같이 코드 코드를 복사합니다.
<sessionState cookieless=false timeout=480 mode=StateServer stateConnectionString=tcpip=127.0.0.1:42424 sqlConnectionString=data source=127.0.0.1;user id=sa;password= />