//*

// 단일쿠키생성

// 단일 쿠키의 경우에는 다음과 같이 값을 바로 설정하는 것도 가능

// HttpCookie MyCookie = new HttpCookie("접속일자", DateTime.Now.ToString());

HttpCookie 사용자쿠키 = new HttpCookie("접속일자");

사용자쿠키.value = DateTime.Now.ToString();

Response.Cookies.Add(사용자쿠키);


// 단일쿠키읽기

if (Request.Cookies["접속일자"] != null)

{

    HttpCookie 사용자쿠키 = Server.HtmlEncode(Request.Cookies["사용자"]);

    Response.Write(사용자쿠키.value);

}

//*/



//*

// 다중쿠키생성

// 사용자 정보를 저장하는 쿠키를 생성한다.

HttpCookie 사용자쿠키 = new HttpCookie("사용자");

사용자쿠키["아이디"] = "nest";

사용자쿠키["이름"] = "김성국";

Response.Cookies.Add(사용자쿠키);


// 다중쿠키읽기

if (Request.Cookies["사용자"] != null)

{

    HttpCookie 사용자쿠키 = Request.Cookies["사용자"];

    Response.Write(Server.HtmlEncode(사용자쿠키["아이디"]));

    Response.Write(Server.HtmlEncode(사용자쿠키["이름"]));

}

//*/



//Server.HtmlEncode()을 사용하는것은 쿠키에 악의적인 코드를 넣은것을 방지하기 위함으로

//필수적인 것은 아니지만 사용하는 것이 좋습니다.




// --------------------------------------------------------

// 참고로 아래와 같은 방법도 가능합니다.

// 제일 간단하죠 하지만 왠지... C# 코딩같이는 안보입니다.

// --------------------------------------------------------

Response.Write("단일쿠키사용예2<br>");

Response.Cookies["접속일자"].Value = DateTime.Now.ToString();


Response.Write(Request.Cookies["접속일자"] + "<br>");

Response.Write(Request.Cookies["접속일자"].Value + "<br>");


Response.Write("다중쿠키사용예2<br>");

Response.Cookies["사용자정보"]["사용자이름"] = "김성국";

Response.Cookies["사용자정보"]["접속일자"] = DateTime.Now.ToString();


Response.Write(Request.Cookies["사용자정보"]["사용자이름"] + "<br>");

Response.Write(Request.Cookies["사용자정보"]["접속일자"] + "<br>");


// 단일쿠키와 다중쿠키를 읽을때 약간 방식이 틀립니다.

// 단일쿠키일때는 .value를 통해서 읽어야 하고

// 다중쿠키일때는 .value가 참조되지 않습니다.

// 만일 단일쿠키를 .value참조하지 않고 출력해보면

// Response.Write(Request.Cookies["접속일자"] + "<br>");

// System.Web.HttpCookie <== 이렇게 찍어줍니다. ㅠㅠ



// 값이 없는 쿠키를 참조하고자하는 경우 아래 에러 발생

// 따라서 if (Request.Cookies["사용자"] != null) 와 같이 반드시 null 체크를 하셔야 함

// Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.




이런 주석사용법도 좋습니다.

ASP.NET 쪽에도 어떤분이 올려 놓은거 보았는데

여기는 없는거 같아서 짤막하게 적어봅니다.


//*

// 주석

// 주석


// 다중쿠키읽기

if (조건)

{

    처리문

}

//*/


'.net' 카테고리의 다른 글

CompareValidator 컨트롤  (0) 2007.05.03
ASP.NET의 정규식  (0) 2007.05.03
자동 가입 방지 폼 구현하기 (GDI+활용)  (0) 2007.05.03
부모창에서 모달(modal) 다이얼로그의 리턴값 받기  (0) 2007.05.03
ASP.NET Popup Control  (0) 2007.05.03

+ Recent posts