쿠키 획득, 값 설정

5426 단어 cookie
설정:
HttpCookie cookie = new HttpCookie("cookieName"); 

cookie.Value = "name1"

HttpContext.Current.Response.Cookies.Add(cookie); 

읽기:
HttpContext.Current.Request.Cookies["cookieName"].Value

쿠키 존재 여부 판단:
if(HttpContext.Current.Request.Cookies["cookieName"]==null){

//do something

}

쿠키 유효기간 설정
cookie.Expires = DateTime.Now.AddDays(1);

 
ASP.NET에서 Cookies 사용(전)
하나, cookies 쓰기
메서드 1: Response.Cookies["username"].Value="gjy"; Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);메서드 2: System.Web.HttpCookie newcookie=new HttpCookie("username"); newcookie.Value="gjy"; newcookie.Expires=DateTime.Now.AddDays(1); Response.AppendCookie(newcookie);
 
하위 키가 있는 cookies: System을 만듭니다.Web.HttpCookie newcookie=new HttpCookie("user"); newcookie.Values["username"]="gjy"; newcookie.Values["password"]="111"; newcookie.Expires=DateTime.Now.AddDays(1); Response.AppendCookie(newcookie);
혹은
HttpCookie UserCookie = new HttpCookie("KindCode");UserCookie["bigKind"] = lstBigKindCode.SelectedValue.Trim();UserCookie["smallKind"] = lstSmallKindCode.SelectedValue.Trim();UserCookie["UserName"] = strUserName;UserCookie["userKind"] = lsbUserSmallKindCode.SelectedValue;UserCookie.Expires = DateTime.Now.AddDays(1);//이 설정은 얼마나 보관해야 합니까?Response.Cookies.Add(UserCookie);
 
2. cookies 읽기: 하위 키 없음 읽기:if(Request.Cookies ["username"]!=null) {Response.Write(Server.Html Encode(Request.Cookies ["username"].Value))} 하위 키 읽기가 있습니다:if(Request.Cookies ["user"]!=null) {Response.Write(Server.Html Encode(Request.Cookies ["user"][username].Value)).
}
혹은
HttpCookie cookie = Request.Cookies["KindCode"];if (cookie != null){string bigKind = cookie.Values["bigKind"];string userName = cookie.Values["UserName"];
}
3. 쿠키 제거
HttpCookie cookie = Request.Cookies["KindCode"];if (cookie != null){cookie.Expires = DateTime.Now.AddDays(-2);Response.Cookies.Set(cookie);
}
 
넷째, 쿠키 응용 프로그램 요약
 
쿠키에 쓰기만 하면
  1. Name 및 Value 속성은 프로그램에서 설정되며 기본값은 빈 참조입니다.
  2. Domain 속성의 기본값은 현재 URL의 도메인 이름 부분입니다. 이 쿠키를 보내는 페이지가 어느 디렉터리에 있든지 상관없습니다.
예를 들어 http://www.kent.com/application1/login.aspx 페이지에서 쿠키를 보내면 Domain 속성이 부족한 것은 www.kent.com이고 프로그램에서 이 속성을 필요한 값으로 설정할 수 있다.
  3. Path 속성의 기본값은 루트 디렉터리입니다. 즉, "/". 이 쿠키를 보내는 페이지가 어느 디렉터리에 있든지 상관없습니다.프로그램에서 일정한 경로로 설정하여 이 쿠키의 역할 범위를 더욱 제한할 수 있습니다.
  4. Expires 속성, 이 쿠키의 만료 날짜와 시간을 설정합니다.쿠키의 유효기간(기본값)을 설정하지 않으면 쿠키를 만들 수도 있지만 사용자의 하드디스크에 저장하지 않고 사용자 세션 정보의 일부가 되며, 브라우저를 닫거나 세션 제한 시간을 초과하면 이 쿠키는 사라진다. 이런 쿠키를 비영구적인 쿠키라고 부른다.Session ID를 저장하는 쿠키는 하드 드라이브에 저장되지 않고 메모리에만 존재하는 일종의 쿠키입니다.
  5. 보낼 쿠키를 Response의 쿠키 속성에 첨부하면 클라이언트: Reponse.Cookies.Add(Cookie)
  6. Domain 속성과 Path 속성이 같은 모든 쿠키는 클라이언트에 하나의 파일에 존재하며 쿠키 간은 "*"로 분할됩니다.각 쿠키의 첫 번째 행은 쿠키의 이름, 두 번째 행은 값, 세 번째 행은 Domain 속성과 Path 속성으로 구성된 문자열로 이 쿠키의 역할 영역을 표시하고, 나머지 행은 쿠키의 일상적인 처리 정보(예: 만료 날짜와 시간)를 포함한다.쿠키에는 쿠키 이름이나 값의 길이를 변경하면 브라우저에서 수정을 감지하고 삭제할 수 있는 간단한 체크섬 하나가 있습니다.
2 읽기 쿠키
  1. Request.쿠키 속성에는 클라이언트가 서버로 보내는 모든 쿠키의 집합이 포함되어 있으며, 요청 URL의 역할 범위 내의 쿠키만 브라우저가 Http 요청과 함께 서버로 전송됩니다.
  2. Name 및 Value 속성 및 하위 키 값은 쉽게 읽을 수 있습니다.
  3. Domain과 Path 속성은 읽을 수 없습니다. Domain 속성은 영원히 "이고, Path 속성은 영원히"/"입니다.원래 이런 속성의 용도는 매우 제한되어 있다.페이지가 쿠키와 동일한 도메인에 있지 않으면 해당 페이지에서 쿠키를 받을 수 없습니다.
  4. 쿠키의 만료 날짜와 시간도 읽을 수 없습니다.실제로 브라우저가 서버에 쿠키 정보를 보낼 때 브라우저는 만료된 정보를 포함하지 않는다.Expires 속성을 읽을 수 있지만 항상 0의 날짜/시간 값이 반환됩니다.Expires 속성의 주요 역할은 브라우저가 쿠키 저장에 대한 일상적인 관리를 수행하도록 돕는 것입니다.서버의 측면에서 볼 때 쿠키는 존재하거나 존재하지 않기 때문에 서버에 있어서 유효기간은 유용한 정보가 아니다.따라서 브라우저는 쿠키를 보낼 때 이 정보를 제공하지 않습니다.쿠키의 만료 날짜가 필요한 경우 다시 설정해야 합니다.
3 수정 및 삭제 쿠키
  1. 사실 당신은 쿠키를 직접 수정할 수 없습니다. 같은 이름의 쿠키를 만들고 이 쿠키를 브라우저에 보내서 클라이언트의 오래된 쿠키를 덮어씁니다.
  2. 마찬가지로 쿠키를 직접 삭제할 수 없습니다. 쿠키를 수정하면 브라우저에서 쿠키를 삭제할 수 있습니다. 쿠키의 유효기간은 과거 시간입니다. 브라우저가 쿠키의 유효기간을 확인하면 만료된 쿠키가 삭제됩니다.
4 쿠키와 Session의 관계.
  1. asp.net에서 Session은 cookie와 cookieless 두 가지 방법을 사용할 수 있다. cookieless 방식은 Session ID를 URL에 놓고 클라이언트와 서비스 측에서 왔다갔다하며 cookie를 사용할 필요가 없다. 여기서 이 방식을 논의하지 않는다.
  2. asp.net에서 고객이 처음으로 URL을 요청했는데 서버는 이 고객에게 세션 ID를 생성하여 비영구적인 쿠키로 클라이언트에게 보냅니다.
  3. 비영구적인 쿠키는 브라우저가 닫힌 후에만 사라집니다. 세션의 시간 초과 판단은 다음과 같습니다.
3.1 첫 번째 클라이언트 액세스 서버는 Session ID를 받아 비영구적인 쿠키로 클라이언트에게 전송됩니다.
3.2 이 브라우저가 닫히기 전에 이 URL에 방문하면 브라우저는 이Session ID를 서버에 보냅니다. 서버는Session ID에 따라 이 고객의 서버에 대응하는 다양한 상태(즉 Session에 저장된 다양한 값)를 유지하고 웹 응용 프로그램에서 이Session을 조작할 수 있습니다.
3.3 서버는 이 세션 ID의 만료 시간을 유지하고 IIS에서 세션 시간 초과를 설정할 수 있습니다.요청할 때마다 서버에서 이 SessioID의 만료 시간을 설정된 시간 초과로 연장합니다.
3.4 서비스 측에서 어떤SessionID가 이미 유행이 지났다는 것을 발견했다. 즉, 한 고객이 설정된 시간 초과 시간 안에 이 사이트를 다시 방문하지 않았기 때문에 이SessionID는 이SessionID와 관련된 모든Session 변수와 함께 삭제될 것이다.
3.5 클라이언트의 브라우저가 닫히기 전에 서버가 이SessionID를 삭제한 줄 몰랐습니다. 클라이언트는 이SessionID의 쿠키를 서버에 보냈습니다. 그러나 이때 서버는 이SessionID를 몰랐습니다. 이 사용자를 새로운 사용자로 생각하고 새로운SessionID를 다시 분배할 것입니다.

좋은 웹페이지 즐겨찾기