ASP.NET 의 Response.Cookies.Remove 에서 COOKIE 를 삭제 할 수 없 는 이유
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie UserInfo = new HttpCookie("UserInfo");
UserInfo.Value = "bdstjk";
Response.Cookies.Add(UserInfo);
}
}
protected void btnRemoveCookie_Click(object sender, EventArgs e)
{
Response.Cookies.Remove("UserInfo");
Response.Write("<script type=\"text/javascript\">alert(\" Cookie !\");</script>");
}
protected void btnCheckCookie_Click(object sender, EventArgs e)
{
if (Request.Cookies["UserInfo"] != null)
{
Response.Write("Cookie ,"+Request.Cookies["UserInfo"].Value);
}
else
{
Response.Write("Cookie ");
}
}
페이지 코드:
<asp:Button ID="btnRemoveCookie" runat="server" Text=" Cookie"
/>
<asp:Button ID="btnCheckCookie" runat="server" Text=" Cookie"
/>
코드 테스트 를 실행 하면 삭제 단 추 를 누 르 면 쿠키 가 존재 하 는 것 을 발견 할 수 있다.다음 그림:왜 그 럴 까요?분명히 쿠키 를 삭제 하 는 작업 을 실 행 했 는데 왜 지우 지 못 합 니까?.NET 의 HttpCookieCollection 구현 소스 코드
public void Remove(string name)
{
if (this._response != null)
{
this._response.BeforeCookieCollectionChange();
}
this.RemoveCookie(name);
if (this._response != null)
{
this._response.OnCookieCollectionChange();
}
}
를 살 펴 보 겠 습 니 다.이 동작 은 HttpCookieCollection 이라는 집합 에서 쿠키 를 삭 제 했 습 니 다.서버 가 클 라 이언 트 에 데 이 터 를 전송 할 때 서버 에서 삭 제 된 Cookie 의 어떠한 메시지 도 포함 하지 않 습 니 다.브 라 우 저 는 이 를 변경 하지 않 습 니 다.그래서 쿠키 가 삭제 되 지 않 는 경우 가 발생 합 니 다.그러면 저희 가 쿠키 를 삭제 하려 면 어떻게 해 야 하나 요?쿠키 를 삭제 하 는 코드 를 다음 문장 으로 변경 합 니 다.
if (Request.Cookies["UserInfo"] != null)
{
Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);
}
Response.Write("<script type=\"text/javascript\">alert(\" Cookie !\");</script>");
프로그램 을 다시 실행 합 니 다.테스트:됐 습 니 다.쿠키 가 삭제 되 었 습 니 다.쿠키 의 만 료 시간 을 마이너스 로 설정 함으로써 쿠키 의 만 료 를 강제 합 니 다.우리 가 원 하 는 효 과 를 거 둘 수 있 을 거 야.Response.Cookies.Remove 는 우리 가 필요 로 하 는 효 과 를 실현 할 방법 이 없 는데 왜 마이크로소프트 가 남아 있 습 니까?CookieCollection 이 ICollection 인 터 페 이 스 를 실현 하기 때문에 romove 는 반드시 실현 해 야 하 는 방법 입 니 다.비록 그것 은 큰 실제 가치 가 없 지만.그리고 집합 한 romove 도 이런 실현 방식 이 어야 한다.다만 마이크로소프트 가 MSDN 을 쓸 때 너무 잘 묘사 하지 못 해서 우리 에 게 적지 않 은 번 거 로 움 을 주 었 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Google Colab을 사용하여 Google Drive의 폴더 삭제Google colab에서 스크립트를 만들 때 Google Drive와 연동하는 것이 편리합니다. 스크립트로 생성된 파일은 Google Drive에 저장됩니다. 제휴에 있어서 불편하게 느껴지는 것은, Colab로부터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.