2011-03-05 2 views
1

나는 내 웹 사이트에서 사용자 인증을 위해 페이스 북을 사용하고 있습니다. C#으로 서버 측에서 로그 아웃 할 때 facebook 쿠키를 삭제해야합니다. 어떻게 할 수 있는지 보여 주시겠습니까? 테스트 및 작동 예제C#으로 서버 측에서 facebook 쿠키를 삭제하는 방법은 무엇입니까?

+0

서버 측에서 어떤 프레임 워크를 사용하고 있습니까? ASP.NET? – Cameron

+2

할 수 없습니다. 사용자의 브라우저에 정중하게 요청하여 삭제할 수 있습니다. 그러나 쿠키는 궁극적으로 사용자가 제어 할 수없는 사용자의 컴퓨터에 저장됩니다. 사용자가 쿠키 파일을 읽기 전용으로 만들면 브라우저가 협조적이라도 웹 사이트가 변경되지 않습니다. –

+0

@Ben : 좋은 지적이지만 대부분의 사람들은 쿠키 파일을 읽기 전용으로 만들지 않습니다 .-) – Cameron

답변

2

쿠키의 이름을 알고 있다고 가정하면 만료 날짜를 과거 시간으로 설정할 수 있습니다. 브라우저가 쿠키를 받으면 쿠키가 만료되었음을 확인하고 삭제합니다. 당신이 페이스 북을 통해 사용자를 인증하고 있기 때문에

if (Request.Cookies["NameOfFacebookCookie"] != null) { 
    HttpCookie myCookie = new HttpCookie("NameOfFacebookCookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

, 내가 '당신을 믿고있어 :

당신이 System.Web.HttpCookieCollection를 사용하는 경우, this MSDN article이 (MSDN에서 해당 각색 예)를 보여줍니다 예제 코드가 있습니다 OAuth를 사용합니다. 이 경우 은 쿠키의 이름을 알지 못하며 어떤 경우든지 쿠키가 아니며 로그인 과정에서 facebook.com에 의해 설정됩니다. Facebook을 통해 로그인 한 사용자를 로그 오프하려면 this answer을 참조하십시오.

+0

+1 견본과 세부 사항. 또한 목표가 Facebook.com 도메인에서 쿠키를 삭제하는 것이라면 Aleca가 찾고있는 대답이 아닐 수도 있습니다. –

+0

@Alexei : 그렇습니다. 그러나 페이스 북 닷컴 도메인에서 쿠키를 삭제할 수있는 방법은 없습니다. (같은 출처 정책 (http://en.wikipedia.org/wiki/) 때문입니다. Same_origin_policy)) – Cameron

0

왜 나는 "코멘트"할 수 없다는 것을 이해하지 못한다. 위의 Alexei와 Cameron 사이의 토론에 추가하려면 쿠키가 Facebook에 의해 관리된다는 가정이 필요합니다. Javascript SDK를 사용했다면, Cameron의 의견은 사실입니다. 그러나 대신 서버 측에서 로그인을 처리 할 수 ​​있도록 수동 로그인 플로우 (SDK 없음)를 만든 경우 검색된 access_token을 저장하기 위해 자신의 쿠키를 생성했을 가능성이 높습니다. 물론 삭제할 수 있습니다.

관련 문제