ClassicASP 끊어지지 않는 세션 만들기
페이지 정보
본문
< 방법 1 : 2008-11-26 작성 / 2013-05-28 수정 >
index_no.asp 만들기
세션이 종료되지 않는 페이지를 만드는 방법은 다음과 같습니다.
meta 태그를 이용하여 20분 이전( 19분 = 19x60 = 1140초 )에 다시 페이지를 읽어 할당합니다.
우선 해당 페이지는 프레임으로 구성되어 있어야 합니다.
통으로 되어있는 페이지라면 default_no.asp 파일이 위치할 수 있도록 프레임을 하나 제작합니다.
프레임을 나누는 페이지를 default.asp라 하고, 실제 세션을 유지하는 페이지를 default_no.asp로 하겠습니다.
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
name = Request("name")
userid = Request("userid")
if userid = Request.Cookies("userid") then
Session("name") = Request.Cookies("name")
Session("userid") = Request("userid")
else
Session.Abandon
end if
%>
<html>
<head>
<meta http-equiv="refresh" content="1140; url=index_no.asp?userid=<%=Session("userid")%>&name=<%=Session("name")%>&no=<% response.write no %>" />
<!-- 테스트 할때는 아래꺼로 1초마다 reflash 해서 브라우저 시간을 확인함
<meta http-equiv="refresh" content="1; url=index_no.asp?userid=<%=Session("userid")%>&name=<%=Session("name")%>&no=<% response.write no %>" />
-->
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right"><% response.write no %></td></tr></table>
</body>
● index.asp ----------------------------------------------
<%@Language=VBScript%>
<html>
<head>
<title>Neovis's ASP</title>
</head>
<frameset rows="*, 0" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no" />
<frame name="session" scrolling="no" noresize src="index_no.asp?name=<%=Session("name")%>&userid=<%=Session("userid")%>" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
** 방법1 주의 **
클라이언트 컴퓨터에 해킹등으로 이유로 세션이 탈취되는경우 로그인 세션정보가 노출될 있습니다.
< 방법 2 : 2013-05-27 추가 >
아래와 같이 index_no.asp 파일에는 아무 내용도 없고 단지 900초마다 리프레쉬를 하는 메타태그가 들어 있을 뿐이다.
바로 숨어 있는 프레임속에 있는 파일이지만 이 소스는 굉장히 중요한 역할을 하게 된다.
위와같이 숨기프레임에서 900초마다 리프레쉬를 시키게 되면, 사용자는 브라우저를 끄지 않는이상은 세션이 종료될일은 없다.
한가지 의문이 생긴다???
왜 900초인가???
잊지 말아야 할 것이 있다. 20분에 60초면 1200초이여야 한다고 생각하시는 분들이 계시리라 생각을 한다.
네트워크환경임을 잊어서는 안된다. 정확하게 1200초가 아니다. 세션이 유지되는 시간 20분은 서버쪽의 20분이고 위의 메타태그가 사용하는 1200초는 클라이언트쪽의 시간임을 상기해보도록 하자.
1119초를 한다고 해서 1초만에 리프레쉬를 시켜주는 것은 아니다.
항상 네트워크는 불안하기 때문에 좀더 시간적인 여유를 메타태그에게 안겨주어야 한다.
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
%>
<html>
<head>
<meta http-equiv="refresh" content="900; url=./index_no.asp" />
<!-- 테스트 할때는 아래꺼로 1초마다 reflash 해서 브라우저 시간을 확인함
<meta http-equiv="refresh" content="1; url=./index_no.asp" />
-->
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right"><% response.write no %></td></tr></table>
</body>
</html>
● index.asp ----------------------------------------------
<% @Language=VBScript %>
<html>
<head>
<title>하야시 ASP</title>
</head>
<frameset rows="*, 7px" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no" />
<frame name="session" scrolling="no" noresize src="index_no.asp" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
** 방법2 주의 **
세션이 연결안되고 종료되는 현상 확인됨, 꼭 20분간 브라우저를 확인해서 점검필요함
< 방법 3 : 2013-05-28 추가 >
● index.asp --- 로그인 화면
● login_ok.asp --- 로그인 처리
<%
response.redirect "index2.asp" ' 로그인 세션 생성후 redirect
%>
● main.asp -- 회원용 메인
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
name = Request("name")
userid = Request("userid")
if Session("member_id") <> "" then
member_id = Session("member_id")
userid = Session("member_id")
Session("member_id") = userid
end if
%>
<html>
<head>
<meta http-equiv="refresh" content="1; url=./index_no.asp?userid=<%=Session("member_id")%>">
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right">20 / <% response.write no %> / <%=Session("member_id")%> / <% response.write userid %></td></tr></table>
</body>
</html>
● index2.asp ----------------------------------------------
<html>
<head>
<title>해피정닷컴</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<frameset rows="*, 7px" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no">
<frame name="session" scrolling="no" noresize src="index_no.asp" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
참고사이트
http://itking.tistory.com/677
http://www.waglwagl.net/Front/Lesson/LessonCheck.aspx?MenuId=1002&Pid=515
index_no.asp 만들기
세션이 종료되지 않는 페이지를 만드는 방법은 다음과 같습니다.
meta 태그를 이용하여 20분 이전( 19분 = 19x60 = 1140초 )에 다시 페이지를 읽어 할당합니다.
우선 해당 페이지는 프레임으로 구성되어 있어야 합니다.
통으로 되어있는 페이지라면 default_no.asp 파일이 위치할 수 있도록 프레임을 하나 제작합니다.
프레임을 나누는 페이지를 default.asp라 하고, 실제 세션을 유지하는 페이지를 default_no.asp로 하겠습니다.
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
name = Request("name")
userid = Request("userid")
if userid = Request.Cookies("userid") then
Session("name") = Request.Cookies("name")
Session("userid") = Request("userid")
else
Session.Abandon
end if
%>
<html>
<head>
<meta http-equiv="refresh" content="1140; url=index_no.asp?userid=<%=Session("userid")%>&name=<%=Session("name")%>&no=<% response.write no %>" />
<!-- 테스트 할때는 아래꺼로 1초마다 reflash 해서 브라우저 시간을 확인함
<meta http-equiv="refresh" content="1; url=index_no.asp?userid=<%=Session("userid")%>&name=<%=Session("name")%>&no=<% response.write no %>" />
-->
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right"><% response.write no %></td></tr></table>
</body>
● index.asp ----------------------------------------------
<%@Language=VBScript%>
<html>
<head>
<title>Neovis's ASP</title>
</head>
<frameset rows="*, 0" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no" />
<frame name="session" scrolling="no" noresize src="index_no.asp?name=<%=Session("name")%>&userid=<%=Session("userid")%>" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
** 방법1 주의 **
클라이언트 컴퓨터에 해킹등으로 이유로 세션이 탈취되는경우 로그인 세션정보가 노출될 있습니다.
< 방법 2 : 2013-05-27 추가 >
아래와 같이 index_no.asp 파일에는 아무 내용도 없고 단지 900초마다 리프레쉬를 하는 메타태그가 들어 있을 뿐이다.
바로 숨어 있는 프레임속에 있는 파일이지만 이 소스는 굉장히 중요한 역할을 하게 된다.
위와같이 숨기프레임에서 900초마다 리프레쉬를 시키게 되면, 사용자는 브라우저를 끄지 않는이상은 세션이 종료될일은 없다.
한가지 의문이 생긴다???
왜 900초인가???
잊지 말아야 할 것이 있다. 20분에 60초면 1200초이여야 한다고 생각하시는 분들이 계시리라 생각을 한다.
네트워크환경임을 잊어서는 안된다. 정확하게 1200초가 아니다. 세션이 유지되는 시간 20분은 서버쪽의 20분이고 위의 메타태그가 사용하는 1200초는 클라이언트쪽의 시간임을 상기해보도록 하자.
1119초를 한다고 해서 1초만에 리프레쉬를 시켜주는 것은 아니다.
항상 네트워크는 불안하기 때문에 좀더 시간적인 여유를 메타태그에게 안겨주어야 한다.
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
%>
<html>
<head>
<meta http-equiv="refresh" content="900; url=./index_no.asp" />
<!-- 테스트 할때는 아래꺼로 1초마다 reflash 해서 브라우저 시간을 확인함
<meta http-equiv="refresh" content="1; url=./index_no.asp" />
-->
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right"><% response.write no %></td></tr></table>
</body>
</html>
● index.asp ----------------------------------------------
<% @Language=VBScript %>
<html>
<head>
<title>하야시 ASP</title>
</head>
<frameset rows="*, 7px" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no" />
<frame name="session" scrolling="no" noresize src="index_no.asp" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
** 방법2 주의 **
세션이 연결안되고 종료되는 현상 확인됨, 꼭 20분간 브라우저를 확인해서 점검필요함
< 방법 3 : 2013-05-28 추가 >
● index.asp --- 로그인 화면
● login_ok.asp --- 로그인 처리
<%
response.redirect "index2.asp" ' 로그인 세션 생성후 redirect
%>
● main.asp -- 회원용 메인
● index_no.asp ----------------------------------------------
<%@Language=VBscript%>
<%
no = request("no") + 1
name = Request("name")
userid = Request("userid")
if Session("member_id") <> "" then
member_id = Session("member_id")
userid = Session("member_id")
Session("member_id") = userid
end if
%>
<html>
<head>
<meta http-equiv="refresh" content="1; url=./index_no.asp?userid=<%=Session("member_id")%>">
<style>
body, td { font-size:7px; line-height:7px; }
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td align="right">20 / <% response.write no %> / <%=Session("member_id")%> / <% response.write userid %></td></tr></table>
</body>
</html>
● index2.asp ----------------------------------------------
<html>
<head>
<title>해피정닷컴</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<frameset rows="*, 7px" frameborder="no" border="0" framespacing="0">
<frame name="main" noresize scrolling="auto" src="main.asp" marginwidth="0" marginheight="0" frameborder="no">
<frame name="session" scrolling="no" noresize src="index_no.asp" marginwidth="0" marginheight="0" frameborder="no" />
</frameset>
참고사이트
http://www.waglwagl.net/Front/Lesson/LessonCheck.aspx?MenuId=1002&Pid=515
댓글목록
등록된 댓글이 없습니다.