2009-03-10 3 views
6

일반 HttpCookie 개체를 세션이 끝날 때 만료되는 쿠키로 만드는 방법에 관심이 있습니다. 나는 누구에게도 관심이 없습니다 showing me HttpContext.Session. 응답 헤더에서 세션 쿠키가 일반 쿠키와 어떻게 비교됩니까? HttpCookie을 세션 끝에서 만료되도록 수정하려면 어떻게해야합니까? 감사!.net HttpCookie 클래스/세션 쿠키 질문

답변

14

세션 쿠키는 만료 날짜가 설정되지 않은 쿠키입니다.

Response.Cookies.Add(new HttpCookie("name", "value")); 

나 : 쿠키의

Response.Cookies["name"] = "value"; 
7

만료 날짜가 DateTime.MinValue (1/1/0001) 인 쿠키는 세션이 끝날 때 만료됩니다. 이것은 asp.net에있는 쿠키의 기본 만료 날짜입니다.

만료 날짜를 "now"(DateTime.Now.AddDays (-1d)) 이전에 설정하여 쿠키를 클라이언트에서 강제로 삭제할 수 있습니다.이 경우 클라이언트에 충돌 할 때 쿠키가 삭제됩니다 .

HttpCookie를 코딩 할 때 null 입력 가능 유형이있는 경우 null 날짜가 세션 기반 쿠키와 같을 것이고 다른 것은 만료 값으로 변환되지만 다른 경우는 그렇지 않습니다.

+0

응답 헤더에 만료일을 설정하지 않은 것처럼 보입니까? – Shawn

+0

나는 그것을 테스트하지 않았으므로 나는 확실히 말할 수 없다. 최근에 우리 프로젝트 프레임 워크를위한 쿠키 라이브러리를 다루는데 많은 시간을 보냈습니다. 개인적으로 나는 요즘 과일을 더 좋아합니다. – andleer

+0

어느 시점에서 도서관을 공유하게되어 기쁩니다. – andleer

5

만료 :

  • 세션 쿠키 - 날짜가 1/1/0001 0시 0분 0초
  • 인 DateTime.MinValue해야 만료
  • 일반 쿠키 (시간 제한) - 만료 날짜는 현재 DateTime.Now보다 크거나 같은 미래 날짜입니다.
  • 언제든지 DateTime.MinValue와 DateTime.Now 사이의 쿠키가 삭제되었습니다.

쿠키를 세션 쿠키로 변경하려면 MinValue를 할당하기 만하면됩니다.

httpCookie.Expires = DateTime.MinValue; 

쿠키가 새로운 쿠키 인 경우. DateTime의 기본값은 DateTime.MinValue 여야하며 설정할 필요가 없습니다.

CallMeLaNN