Сервер не может изменять файлы cookie после отправки заголовков HTTP с помощью поисковых ботов - PullRequest
0 голосов
/ 30 марта 2012

Я не уверен, что здесь происходит, но иногда я получаю сообщение об ошибке "Server cannot modify cookies after HTTP headers have been sent" при попытке установить куки.Из того, что я могу сказать, это в основном поисковые роботы какого-то рода.У ботов отключены куки или что-то еще?Я не могу воспроизвести его, когда отключаю куки.Мой код ниже запускается в контроллере.Выглядит ли это правильно?

                var cookie = new HttpCookie(Config.ApiCookie)
                {
                    HttpOnly = true,
                    Secure = false,
                    Value = authenticationResponse[SessionKey].ToString()
                };

                if (HttpContext.Current.Response.Cookies[Config.ApiCookie] != null)
                {
                    HttpContext.Current.Response.Cookies.Set(cookie);
                }
                else
                {
                    HttpContext.Current.Response.Cookies.Add(cookie);
                }

1 Ответ

1 голос
/ 17 апреля 2012

Проблема была с .Set, который глючит. Вместо этого я использовал приведенный ниже код и исправил проблему.

if (HttpContext.Current.Response.Cookies[Config.ApiCookie] != null)
            {
                HttpContext.Current.Response.Cookies[Config.ApiCookie].Value = cookie.Value;
            }
            else
            {
                HttpContext.Current.Response.Cookies.Add(cookie);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...