C#_ASP.NET

(ASP.NET, C#) 쿠키 Cookie 저장과 읽기

코딩ABC 2023. 5. 15. 06:44
반응형

다음 코드는 간단하게 데이터를 쿠키에 저장하고 읽어오는 간단한 코드입니다.

먼저 코드를 살펴보겠습니다.

protected void Button1_Click(object sender, EventArgs e)
{
   // 쿠키 저장
   Response.Cookies["id"].Value = TextBox1.Text;
   Response.Cookies["pwd"].Value = TextBox2.Text;
   Response.Cookies["datetime"].Value = DateTime.Now.ToString();
   Response.Cookies["id"].Expires = DateTime.Now.AddDays(30);
   Response.Cookies["pwd"].Expires = DateTime.Now.AddDays(30);
   Response.Cookies["datetime"].Expires = DateTime.Now.AddDays(30);
}

protected void Button2_Click(object sender, EventArgs e)
{
   // 쿠키 읽기
   string id = Request.Cookies["id"].Value;
   string pwd = Request.Cookies["pwd"].Value;
   string datetime = Request.Cookies["datetime"].Value;

   ListBox1.Items.Clear();
   ListBox1.Items.Add(id);
   ListBox1.Items.Add(pwd);
   ListBox1.Items.Add(datetime);
}

ASP.NET 쿠키 저장 읽기, 한글 깨짐

 

날짜 부분의 깨진 글자는 "오전/오후"를 표시하는 한글입니다.

쿠키 정보에 한글을 포함하고 있으면 인코딩을 해서 저장해야 합니다. 인코딩해서 저장된 데이터는 읽을 때 디코딩이 필요합니다.

 

쿠키 정보를 인코딩과 디코딩을 해서 저장하고 읽어오는 코드로 변경해서 실행했습니다.

protected void Button1_Click(object sender, EventArgs e)
{
   // 쿠키 저장
   Response.Cookies["id"].Value = Server.UrlEncode(TextBox1.Text);
   Response.Cookies["pwd"].Value = Server.UrlEncode(TextBox2.Text);
   Response.Cookies["datetime"].Value = Server.UrlEncode(DateTime.Now.ToString());

   Response.Cookies["id"].Expires = DateTime.Now.AddDays(30);
   Response.Cookies["pwd"].Expires = DateTime.Now.AddDays(30);
   Response.Cookies["datetime"].Expires = DateTime.Now.AddDays(30);
}

protected void Button2_Click(object sender, EventArgs e)
{
   // 쿠키 읽기
   string id = Server.UrlDecode(Request.Cookies["id"].Value);
   string pwd = Server.UrlDecode(Request.Cookies["pwd"].Value);
   string datetime = Server.UrlDecode(Request.Cookies["datetime"].Value);

   ListBox1.Items.Clear();
   ListBox1.Items.Add(id);
   ListBox1.Items.Add(pwd);
   ListBox1.Items.Add(datetime);
}

ASP.NET 한글 데이터 쿠키 저장, 읽기

 

Expires 속성

Expire 속성은 쿠키의 만료 날짜 및 시간을 가져오거나 설정합니다. 즉, 클라이언트에서 쿠키가 만료되는 시간을 나타냅니다.

다음 코드 예제에서는 쿠키의 만료 시간을 현재 시간에서 10 분으로 설정합니다.

MyCookie.Expires = DateTime.Now.AddMinutes(10.0);

 


HttpCookie 클래스

개별 HTTP 쿠키를 만들고 조작할 수 있는 형식이 안전한 방법을 제공합니다.

다음 예제는 HttpCookie 클래스를 이용해서 쿠키 정보를 저장하고 읽어오는 예제입니다.

        protected void Button1_Click(object sender, EventArgs e)
        {
            // 쿠키 저장
            HttpCookie cookie = new HttpCookie("mysite");
            cookie["id"] = Server.UrlEncode(TextBox1.Text);
            cookie["pwd"] = Server.UrlEncode(TextBox2.Text);
            cookie["datetime"] = Server.UrlEncode(DateTime.Now.ToString());

            cookie.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Add(cookie);
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            // 쿠키 읽기
            HttpCookie cookie = Request.Cookies["mysite"];
            string id = Server.UrlDecode(cookie["id"]);
            string pwd = Server.UrlDecode(cookie["pwd"]);
            string datetime = Server.UrlDecode(cookie["datetime"]);

            ListBox1.Items.Clear();
            ListBox1.Items.Add(id);
            ListBox1.Items.Add(pwd);
            ListBox1.Items.Add(datetime);
        }
반응형