Response.Cookies보다 Request.Cookies를 언제 사용합니까?
ASP.NET의 응답이므로 페이지 이벤트 (예 :로드)에서 응답을 사용하고 처리를 위해 ASP.NET으로 이동하는 응답이므로 단추를 누를 때 요청을 사용합니까? 아니면 더 많은 것이 있습니까?
그들은 다른 것들 2 번이 저장 [응답, 다른 READS [요청]
쿠키 (정보학)에서 :) 문자열 유형의 객체를 포함하는 일정 기간 동안 작은 파일을 저장 합니다.
.NET 프레임 워크에서 다음과 같이 쿠키 를 저장합니다 .
HttpCookie myCookie = new HttpCookie("MyTestCookie");
DateTime now = DateTime.Now;
// Set the cookie value.
myCookie.Value = now.ToString();
// Set the cookie expiration date.
myCookie.Expires = now.AddMinutes(1);
// Add the cookie.
Response.Cookies.Add(myCookie);
Response.Write("<p> The cookie has been written.");
1 분 동안 사용할 수있는 쿠키를 작성했습니다 ... 일반적으로 지금 수행합니다 .AddMonth (1) 한 달 동안 쿠키를 저장할 수 있습니다.
쿠키 를 검색 하려면 다음과 같이 요청 (요청중인)을 사용합니다.
HttpCookie myCookie = new HttpCookie("MyTestCookie");
myCookie = Request.Cookies["MyTestCookie"];
// Read the cookie information and display it.
if (myCookie != null)
Response.Write("<p>"+ myCookie.Name + "<p>"+ myCookie.Value);
else
Response.Write("not found");
생각해 내다:
쿠키를 삭제하려면 직접 코드가 없습니다. 트릭은 이미 지나간 만료 날짜 ( 예 : now) 와 함께 동일한 쿠키 이름 을 저장 하는 것입니다 .AddMinutes (-1)
쿠키가 삭제됩니다.
보시다시피 쿠키의 수명이 만료 될 때마다 해당 파일은 시스템에서 자동으로 삭제됩니다.
웹 애플리케이션에서 요청은 브라우저에서 오는 것이고 응답은 서버가 다시 보내는 것입니다. 브라우저에서 쿠키 또는 쿠키 데이터를 확인할 때 Request.Cookies를 사용해야합니다. 브라우저에 보낼 쿠키를 구성 할 때 Response.Cookies에 추가해야합니다.
쿠키를 작성할 때 응답을 사용하지만 읽기는 상황에 따라 달라질 수 있습니다. 일반적으로 요청에서 읽지 만 애플리케이션이 방금 작성되거나 업데이트 된 쿠키를 가져 오려고 시도하고 브라우저로의 왕복이 발생하지 않은 경우 응답에서 읽어야 할 수 있습니다.
저는이 패턴을 한동안 사용해 왔으며 저에게 잘 작동합니다.
public void WriteCookie(string name, string value)
{
var cookie = new HttpCookie(name, value);
HttpContext.Current.Response.Cookies.Set(cookie);
}
public string ReadCookie(string name)
{
if (HttpContext.Current.Response.Cookies.AllKeys.Contains(name))
{
var cookie = HttpContext.Current.Response.Cookies[name];
return cookie.Value;
}
if (HttpContext.Current.Request.Cookies.AllKeys.Contains(name))
{
var cookie = HttpContext.Current.Request.Cookies[name];
return cookie.Value;
}
return null;
}
쿠키는 Request.Cookies 컬렉션의 브라우저에서 제공됩니다. 전송 된 쿠키를 읽는 곳입니다.
쿠키를 브라우저로 다시 보내려면 Response.Cookies 컬렉션에 넣으십시오.
If you want to delete a cookie, you have to tell the browser to remove it by sending the cookie with an expiration date that has passed. The browser is using the local time of the client computer so if you are using the server time to create a date, be sure to subtract at least one day to be sure that it has actually passed in the clients local time.
When i create or update a cookie in .NET i normally do it to both the request and response cookie collection. That way you can be sure if you try to read the cookie further down the page request sequence it will have the correct information.
Andrew's Code gave an error in "AllKeys.Contains" Method. So I corrected a little..
public void WriteCookie(string strCookieName, string strCookieValue)
{
var hcCookie = new HttpCookie(strCookieName, strCookieValue);
HttpContext.Current.Response.Cookies.Set(hcCookie);
}
public string ReadCookie(string strCookieName)
{
foreach (string strCookie in HttpContext.Current.Response.Cookies.AllKeys)
{
if (strCookie == strCookieName)
{
return HttpContext.Current.Response.Cookies[strCookie].Value;
}
}
foreach (string strCookie in HttpContext.Current.Request.Cookies.AllKeys)
{
if (strCookie == strCookieName)
{
return HttpContext.Current.Request.Cookies[strCookie].Value;
}
}
return null;
}
참고URL : https://stackoverflow.com/questions/573922/when-to-use-request-cookies-over-response-cookies
'Nice programing' 카테고리의 다른 글
TypeError : $ (…) .DataTable은 함수가 아닙니다. (0) | 2020.12.06 |
---|---|
오류 1053 : 서비스가 시작 또는 제어 요청에 적시에 응답하지 않았습니다. (0) | 2020.12.06 |
유효하지 않은 이메일 주소를 찾기위한 SQL 스크립트 (0) | 2020.12.06 |
DateRange 객체를 만들어야합니까? (0) | 2020.12.05 |
install.packages를 사용하여 R-forge 패키지를 설치할 수 없습니다. (0) | 2020.12.05 |