ASP.NET

13.C# ASP.NET - Application.Session

Godffs 2009. 10. 5. 16:34
반응형
세션은 나 자신만 동일 변수가 사용자 만큼 선언됩니다.
어플리케이션은 접속자 전체이며,
에플리케이션 하나, 세션은 여러개 생성 가능합니다.

[FrmApplicationSession : FrmApplication과 Session객체]

FrmApplicationSession.aspx

<div>

    현재 페이지가 모든 사용자에 의해

    <asp:Label ID = "lblApplication" runat = "server"></asp:Label>

        호출되었습니다.<br />

      

    현재 페이지가 나에 의해서

    <asp:Label ID = "lblSession" runat = "server"></asp:Label>

        호출했습니다.<br />

 

    나의 고유 접속번호 :

    <asp:Label ID = "lblSessionID" runat ="server"></asp:Label><br />

 

    현재 세션 유지시간 :

    <asp:Label ID = "lblTimeout" runat = "server"></asp:Label><br />   

</div>


FrmApplicationSession.aspx.cs

protected void Page_Load(object sender, EventArgs e)

{

    //Applicateion 전역변수 : Public 전역변수

    //Session 전역변수 : Private 전역변수

    //[1] Application 변수 1 증가

    if (Application["Count"] == null)

    {

        //먼저 사용자가 변수 수정 잠그기

        Application.Lock();

 

        //응용프로그램 변수 선언/내용 수정(초기화) 선언과 동시 초기화

        Application["Count"] = 1;

 

        //잠금 해제 : 다른 사용자가 사용가능

        Application.UnLock();

 

        //lock,unlock 동시에 접속할 경우 재일 가까운 사람이 접속이 되고,

              //lock 걸어 다음 사람을 대기시킨다.

       

        //공식적

    }

    else

    {

          Application["Count"] = (int)Application["Count"] + 1;

    }

 

    //[2] Session 변수 1 증가

    if (Session["Count"] == null)

    {

         Session["Count"] = 1; //세션변수 선언과 동시에 1 초기화

    }

    else

    {

         Session["Count"] = (int)Session["Count"] + 1;

    }

 

    //[3] 출력

    //누구나 1 증가

    this.lblApplication.Text = Application["Count"].ToString();

 

    //현재 접속자만 1 증가

    this.lblSession.Text = Session["Count"].ToString();

 

    //현재 접속자의 고유 접속 번호

    this.lblSessionID.Text = Session.SessionID;// 브라우저를 한명의 접속자로

 

    //현재 세션의 유지 시간

    this.lblTimeout.Text = Session.Timeout.ToString(); //20분에 자동으로 초기화

}


결과화면

[그림13-1]



반응형