создание файла cookie с ошибками в Safari, Chrome, т.е. при работе с FF - PullRequest
3 голосов
/ 27 мая 2009

Мы используем следующий код для создания файла cookie безопасности. В среде Staging все работает нормально, однако в производственной среде следующий код не может создать cookie в Safari, Chrome или IE, но он успешно создает cookie в Firefox. что-нибудь, что вы, ребята, думаете, что я пропал или здесь не так?

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);
        }

Ответы [ 3 ]

7 голосов
/ 09 марта 2010

Safari и IE8 не принимают сторонние файлы cookie по умолчанию.

Когда вы вызываете другой домен с помощью JSONP, каждый cookie, установленный этим сценарием, будет блокироваться Safari и IE8. С этим ничего нельзя поделать (в IE8 вы можете добавить политику P3P, но в Safari это не работает).

Есть обходные пути для поддержания состояния между вызовами JSONP, но это довольно сложно (вам придется управлять состоянием вручную и использовать document.cookie в вызываемом javascript)

В качестве альтернативы вы можете попросить своих пользователей понизить настройки конфиденциальности в своем браузере, но это не стоит учитывать ИМХО.

0 голосов
/ 13 октября 2009

Я видел эту проблему, связанную с неправильной датой / временем UTC на сервере. Firefox принимает независимо от даты / времени сервера, но другие браузеры не будут устанавливать cookie, если дата / время находятся вне определенного предела ошибки.

0 голосов
/ 27 мая 2009

Вы проверили, есть ли у вас надстройка для веб-разработчика и отключены куки? или отключенные куки внутри FF?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...