ASP.NET

58.C# ASP.NET - 클라이언트 측 ( Cookies ) [상태관리6]

Godffs 2009. 10. 20. 23:34
반응형
클라이언트측 보관
- Cookies
: 웹 브라우저에 임시 보관 또는 텍스트파일 형태로 영구보관

해당 페이지에 버튼을 추가하고 버튼에 대한 클릭 이벤트를 추가합니다.
FrmCookies.aspx

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:Button ID="btnAddCookies" runat="server" Text="쿠키의 현재시간 저장" />

    </div>

    </form>

</body>

</html>


FrmCookies.aspx.cs

protected void btnAddCookies_Click(object sender, EventArgs e)

{

   //현재 시간을 쿠키에 저장

   Response.Cookies["NOW"].Value = DateTime.Now.ToShortTimeString();

 

   //저장과 동시에 쿠키 읽어오기

   if (Request.Cookies["NOW"] != null) //예외처리가 반드시 필요하다.

   {

       string now = Request.Cookies["NOW"].Value;

       Response.Write("방금 구운 쿠키 : " + now);

   }

}


//현재 시간을 쿠키에 저장(다른것임)

//Response.Cookies["NOW"].Expires = DateTime.Now.AddDays(30); //30일간 저장 가능

// 코드 주석처리 하게 되면 계속 살아 남고 그렇지 않으면 브라우저가 닫히면 자동으로 소멸된다.


결과화면

[그림58-1]


현재의 쿠키값을 다른 페이지에서 보는 예제
새 항목 추가 - Web Form (FrmCookiesShow)
FrmCookiesShow.cs

10 protected void Page_Load(object sender, EventArgs e)

11 {

12    //쿠키 읽어오기

13    if (Request.Cookies["NOW"] !=null)

14    {

15        // 브라우저에 임시로 저장된다.

16        //영구저장이 가능 : 파일로

17        string now = Request.Cookies["NOW"].Value;

18        Response.Write(

19           "FrmCookies 페이지에서 구운 쿠키 : " + now);

20    }

21 

22    //코드레벨에서 HttpCookie 클래스 사용해서 쿠키 생성

23    HttpCookie myName = new HttpCookie("MyName");

24 

25    //Value, Values 두개 있다. 한개만, 여러개

26    myName.Values.Add("Name", "용준");

27    myName.Values.Add("Nick", "RedPlus"); ;

28 

29    Response.Cookies.Add(myName);

30 

31    //Name Nick 따로 출력

32    //하나의 객체(23)에서 따로따로 불러오는것 가능

33    Response.Write(myName.Values["Name"] + "<br/>");

34    Response.Write(myName.Values["Nick"] + "<br/>");

35 

36    //읽어오는 페이지 따로따로

37    HttpCookie saved = Request.Cookies["MyName"]; //결과는 33,34 동일

38 }


결과확인

[그림58-2]



반응형