반응형
다음 코드는 간단하게 데이터를 쿠키에 저장하고 읽어오는 간단한 코드입니다.
먼저 코드를 살펴보겠습니다.
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);
}
날짜 부분의 깨진 글자는 "오전/오후"를 표시하는 한글입니다.
쿠키 정보에 한글을 포함하고 있으면 인코딩을 해서 저장해야 합니다. 인코딩해서 저장된 데이터는 읽을 때 디코딩이 필요합니다.
쿠키 정보를 인코딩과 디코딩을 해서 저장하고 읽어오는 코드로 변경해서 실행했습니다.
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);
}
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);
}
반응형
'C#_ASP.NET' 카테고리의 다른 글
( ASP.NET C#) MessageBox 삭제할까요? 예 아니오 버튼 구현하기 (0) | 2023.05.23 |
---|---|
(ASP.NET, C#) ViewState 컬렉션 개요 (0) | 2023.05.16 |
(ASP.NET, C#) 웹폼페이지에 코드 블록 포함하기 ItemTemplate, Eval (0) | 2023.05.13 |
(ASP.NET, C#) 그리드뷰 GridView EmptyDataTemplate 데이터가 없을 때 출력할 문자열 지정하기 (0) | 2023.05.12 |
(ASP.NET, C#) 그리드뷰 GridView 선택된 행의 열 내용 가져오기 (0) | 2023.05.12 |