ASP.NET 세션 관리 튜토리얼 [예제]

ASP.NET 세션 관리

모든 웹 애플리케이션이 작동하는 HTTP 프로토콜은 상태 비저장 프로토콜입니다. 무상태라는 것은 정보가 한 요청에서 다른 요청으로 유지되지 않는다는 것을 의미합니다.

예를 들어, 이름을 위한 텍스트 상자 하나와 비밀번호를 위한 텍스트 상자 하나가 있는 로그인 페이지가 있다면, 해당 페이지에서 로그인 버튼을 클릭하면 애플리케이션은 사용자 이름과 비밀번호가 다음 페이지로 전달되도록 해야 합니다.

ASP.Net에서는 이 작업이 다양한 방식으로 수행됩니다. 첫 번째 방법은 ViewState라는 개념을 이용하는 것입니다. ASP.Net은 모든 컨트롤의 내용을 자동으로 저장하는 곳입니다. 또한 이것이 다음 페이지로 전달되도록 보장합니다. 이는 ViewState라는 속성을 통해 수행됩니다.

개발자가 뷰 상태에서 무엇이든 변경하는 것은 이상적이지 않습니다. ASP.Net에서만 처리해야 하기 때문입니다.

ASP.NET 세션 개체

다른 방법은 "세션 개체"라는 개체를 사용하는 것입니다. Session 객체는 애플리케이션의 수명주기 전반에 걸쳐 사용할 수 있습니다. 세션 개체에 키-값 쌍을 원하는 수만큼 저장할 수 있습니다. 따라서 모든 페이지에서 아래 코드 줄을 통해 Session 개체에 값을 저장할 수 있습니다.

Session["Key"]=value

이것은 세션 객체에 값을 저장하고 '키' 부분은 값에 이름을 지정하는 데 사용됩니다. 이를 통해 나중에 값을 검색할 수 있습니다. 값을 검색하려면 아래 명령문을 실행하기만 하면 됩니다.

Session["Key"]

ASP.NET 세션 개체 예

우리의 예에서, 우리는 Session 객체를 사용하여 페이지의 이름 텍스트 상자 필드에 입력된 이름을 저장할 것입니다. 그런 다음 해당 값을 검색하여 페이지에 적절하게 표시할 것입니다. 아래 코드를 Demo.aspx.cs 파일에 추가해 보겠습니다.

세션 개체 사용

protected void btnSubmit_Click(object sender,EventArgs e)
{
	Session["Name"] = txtName.Text;

	Response.Write(Session["Name"]);

	lblName.Visible = false; 
	txtName.Visible = false; 
	1stLocation.Visible = false;
	chkC.Visible = false; 
	chkASP.Visible = false; 
	rdMale.Visible = false;
	rdFemale.Visible = false;
	btnSubmit.Visible = false;
}

코드 설명:-

  1. 첫 번째 코드 줄은 Name 텍스트 상자 컨트롤의 값을 가져와 Session 객체에 저장합니다. Session[“Name”]의 코드를 지정하면 속성에 “Name”이라는 이름을 부여합니다. 속성에 이름을 지정하면 나중에 해당 속성을 검색하기가 더 쉬워집니다.
  2. 다음 코드 줄은 Session 개체에서 저장된 값을 검색합니다. 그런 다음 'Response.Write' 메서드를 통해 이 값을 클라이언트에 다시 씁니다.
  3. 마지막으로, 폼의 모든 컨트롤을 보이지 않게 만듭니다. 이렇게 하지 않으면 모든 컨트롤과 응답 값이 함께 표시됩니다.

위의 변경 사항을 적용하면 다음과 같은 출력이 표시됩니다.

출력:

세션 개체 사용

출력에서 name의 Session 값이 검색되어 브라우저에 표시된 것을 볼 수 있습니다.

요약

  • 세션 관리는 다음과 같은 방법입니다. ASP.net 정보가 한 페이지에서 다른 페이지로 전달되도록 합니다.
  • 페이지의 보기 상태 속성은 한 페이지에서 다른 페이지로 컨트롤 정보를 자동으로 전달하는 데 사용됩니다.
  • '세션' 개체는 웹 페이지 내에서 특정 값을 저장하고 검색하는 데 사용됩니다.