2009-05-27 7 views
3

다음 코드를 사용하여 보안 쿠키를 생성합니다. 준비 환경에서는 모든 것이 잘 작동하지만 프로덕션 환경에서 다음 코드는 Safari, Chrome 또는 IE에서 쿠키를 만들 수 없지만 Firefox에서는 쿠키를 성공적으로 만듭니다. 너희들이 내가 누락되었거나 여기에 잘못되었다고 생각하는 무엇인가?사파리, 크롬, 즉 FF로 작업하는 쿠키가 생성되지 않았습니다.

public static void SetAuthenticationCookie(CustomIdentity identity) 
     { 
      ConfigSettings configSettings = ConfigHelper.GetConfigSettings(); 

      string cookieName = configSettings.CookieName; 
      if (cookieName == null || cookieName.Trim() == String.Empty) 
      { 
       throw new Exception("CookieName entry not found in Web.config"); 
      } 

      string cookieExpr = configSettings.CookieExpiration.ToString(); 

      string encryptedUserDetails = Encrypt(identity); 

      HttpCookie userCookie = new HttpCookie(cookieName.ToUpper()); 
      if (cookieExpr != null && cookieExpr.Trim() != String.Empty) 
      { 
       userCookie.Expires = DateTime.Now.AddMinutes(int.Parse(cookieExpr)); 
      } 
      userCookie.Values["UserDetails"] = encryptedUserDetails; 
      userCookie.Values["Culture"] = configSettings.Customer.Culture; 

      MyContext.Current.Response.Cookies.Add(userCookie); 
     } 

답변

0

웹 개발자 애드온 및 비활성화 된 쿠키가 있는지 확인 했습니까? 또는 FF 내의 쿠키를 사용할 수 없습니까?

+0

쿠키는 모든 브라우저에서 사용하도록 설정되어 있습니다. 이상한 점은 스테이징 및 프로 드 서버에서 동일한 코드이므로, FF – Vikram

0

이 문제는 잘못된 UTC 날짜/시간을 가진 서버와 관련이 있습니다. Firefox는 서버 날짜/시간과 상관없이 허용하지만 날짜/시간이 특정 오차 범위를 벗어나면 다른 브라우저는 쿠키를 설정하지 않습니다.

7

Safari와 IE8은 기본적으로 타사 쿠키를 허용하지 않습니다.

JSONP를 사용하여 다른 도메인을 호출하면 해당 스크립트로 설정된 모든 쿠키가 Safari 및 IE8에 의해 차단됩니다. IE8에서는 P3P 정책을 추가 할 수 있지만 Safari에서는 작동하지 않습니다.

가 JSONP 호출을 통해 상태를 유지하기위한 해결 방법이 있지만 꽤 복잡 대안으로

을 (수동 상태를 관리하고 호출 자바 스크립트에서 document.cookie를을 사용해야합니다), 당신은 당신의 사용자를 요청할 수 있습니다 브라우저의 개인 정보 설정을 낮추기 위해 IMHO를 고려해 볼 가치가있는 것은 아닙니다.

+0

을 제외한 모든 브라우저에서 문제가되는 것뿐 아니라 최신 버전의 Opera에도 적용됩니다. –

+0

HTML5'localStorage' (현대의 대부분의 것들이 지원합니다)는 괜찮은 해결 방법입니다. http://grack.com/blog/2010/01/06/3rd-party-cookies-dom-storage-and-privacy를 참조하십시오./및 http://diveintohtml5.org/storage.html –

관련 문제