Blog Content

    티스토리 뷰

    13.C# ASP.NET - Application.Session

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

    [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]



    반응형

    Comments