반응형
asp.net mvc 3 및 C #을 사용하여 쿠키를 지우는 방법은 무엇입니까?
좋아, 그래서 나는 이것을 제대로하고 있다고 생각하지만 쿠키가 지워지지 않습니다.
Session.Clear();
HttpCookie c = Request.Cookies["MyCookie"];
if (c != null)
{
c = new HttpCookie("MyCookie");
c["AT"] = null;
c.Expires = DateTime.Now.AddDays(-1);
Request.Cookies.Add(c);
}
return RedirectToAction("Index", "Home");
리디렉션이 발생하면 쿠키를 다시 찾고 로그 아웃하지 않은 것처럼 계속 진행됩니다. 이견있는 사람?
당신은 가깝습니다. 브라우저에 다시 쓰려면 Response 개체를 사용해야합니다.
if ( Request.Cookies["MyCookie"] != null )
{
var c = new HttpCookie( "MyCookie" );
c.Expires = DateTime.Now.AddDays( -1 );
Response.Cookies.Add( c );
}
MSDN에 대한 자세한 정보, 방법 : 쿠키 삭제 .
쿠키는 서버가 아닌 클라이언트에 저장되므로 Session.Clear는 쿠키에 영향을주지 않습니다. 또한 Request.Cookies는 IIS에 의해 채워지며 페이지에 대한 각 요청과 함께 페이지에 제공됩니다. 해당 컬렉션에서 쿠키를 추가 / 제거해도 아무 작업도 수행되지 않습니다.
Response.Cookies에 대해 유사한 작업을 수행하십시오. 그러면 클라이언트가 이전 쿠키를 새 쿠키로 덮어 쓰게되어 만료됩니다.
나는 이것을했고 세션 쿠키를 지우지 않고 (삭제하지 않음) 작동했습니다.
HttpContext.Response.Cookies.Set(new HttpCookie("cookie_name"){Value = string.Empty});
Metro의 응답에 따라이 확장 메서드를 만들어 모든 컨트롤러에서 코드를 재사용 할 수 있도록했습니다.
/// <summary>
/// Deletes a cookie with specified name
/// </summary>
/// <param name="controller">extends the controller</param>
/// <param name="cookieName">cookie name</param>
public static void DeleteCookie(this Controller controller, string cookieName)
{
if (controller.HttpContext.Request.Cookies[cookieName] == null)
return; //cookie doesn't exist
var c = new HttpCookie(cookieName)
{
Expires = DateTime.Now.AddDays(-1)
};
controller.HttpContext.Response.Cookies.Add(c);
}
참조 URL : https://stackoverflow.com/questions/5122404/how-do-you-clear-cookies-using-asp-net-mvc-3-and-c
반응형
'Programing' 카테고리의 다른 글
weka 분류를 해석하는 방법? (0) | 2021.01.11 |
---|---|
htaccess를 사용한 모바일 리디렉션 (0) | 2021.01.11 |
프로그래밍 방식으로 새 키 저장소를 생성하려면 어떻게합니까? (0) | 2021.01.11 |
트위터 부트 스트랩 날짜 선택기 (0) | 2021.01.11 |
쉘 스크립트 (Unix)에서 터미널 창을 닫으시겠습니까? (0) | 2021.01.11 |