2012. 5. 1. 11:54

개인적으로 세션을 엄청 좋아 합니다.
세션은 서버의 메모리에 저장되기 때문에 보안에 좋으면서 데이터 격리가 확실하기 때문에 세션으로 프로그램을 만들면 생각할 건 세션에 내용이 있는지 없는지만 확인하면 되죠.

 

하지만 서버 메모리를 이용하기 때문에 사용자에 비례하여 메모리 점유율이 올라갑니다.
사용자가 다른 사이트로 넘어가도 세션은 브라우저가 종료되지 않으면 살아있기 때문에 이미 떠나간 손님의 정보도 메모리아 잔뜩 올려놓는 불상사가.....

 

 

1. 세션 사용하기

사용법은 간단합니다.

Session["[사용할 이름]"] = [넣을값];
Page.Session["[사용할 이름]"] = [넣을값];

int a = Convert.ToInt32( Session["[사용할 이름]"] );
string b = Page.Session["[사용할 이름]"] .ToString();

 

 

 

2. 세션의 시작과 끝

세션이 시작되거나 끝날때는 Global.asax에서 알수 있습니다.

(참고 : [ASP.Net] ASP.Net의 Main은 어디 있을까? (Global.asax파일) )

void Session_Start(object sender, EventArgs e)
{
	// 새 세션이 시작할 때 실행되는 코드입니다.
}

void Session_End(object sender, EventArgs e)
{
	// 세션이 끝날 때 실행되는 코드입니다. 
	// 참고: Session_End 이벤트는 Web.config 파일에서 sessionstate 모드가
	// InProc로 설정되어 있는 경우에만 발생합니다. 세션 모드가 StateServer 또는 SQLServer로 
	// 설정되어 있는 경우에는 이 이벤트가 발생하지 않습니다.
}

 

 

마무리

필요하다면 개인의 큰 데이터를 저장하기 위해서 사용하는것도 가능합니다.

'DataSet'를 통체로 넣어놓고 DB처럼 써야하는 경우도 있긴합니다만.....

이런건 미친짓입니다;;;

 

세션은 가능하면 적은 데이터를 가지고 있도록 해야합니다.