Не удалось установить cookie из действия

1

У меня есть приложение ASP.NET MVC, размещенное вместе с приложением ASP.NET WebApi на localhost и localhost/api и я не хочу устанавливать cookie при вызове одного действия ASP.NET WebApi.

Я попытался настроить свой файл cookie следующим образом:

response.Headers.AddCookies(new[]
                                        {
                                            new CookieHeaderValue("test", "asd")
                                            {
                                                Expires = DateTime.Now.AddDays(1),
                                                Domain = Request.RequestUri.Host,
                                                Path = "/",
                                                HttpOnly = false
                                            }
                                        });

Я получил это в заголовках ответов:

Set-Cookie:test=asd; expires=Thu, 30 Oct 2014 09:53:35 GMT; domain=localhost; path=/

Но этот cookie не создается по какой-то причине.

Просто для тестирования я попытался настроить cookie из приложения ASP.NET MVC следующим образом:

HttpContext.Response.Cookies.Add(new HttpCookie("test", "asd")
            {
                Expires = DateTime.Now.AddDays(1),
                Domain = HttpContext.Request.Url.Host,
                Path = "/",
                HttpOnly = false
            });

Заголовки ответов содержат:

Set-Cookie:test=asd; domain=localhost; expires=Thu, 30-Oct-2014 09:56:08 GMT; path=/

Но все-таки я не вижу этого печенья. Что я делаю неправильно, как это может быть, поэтому эти заголовки игнорируются? Однако другие файлы cookie работают нормально (например.ASPXAUTH).

  • 0
    Что ты имеешь в виду под "не вижу этого печенья"? Куда ты смотришь?
  • 0
    @ SveinFidjestøl document.cookie и на вкладке Ресурсы в инструментах разработчика Chrome
Показать ещё 3 комментария
Теги:
cookies
asp.net-mvc
asp.net-web-api

1 ответ

5
Лучший ответ

Вы не можете устанавливать файлы cookie на localhost, по крайней мере, не с Chrome.

Вам нужно хотя бы название из двух частей, например mytestsite.local, или вам нужно установить

Domain = null

в коде С#.

  • 0
    Если бы та же проблема, Domain = null решает ее

Ещё вопросы

Сообщество Overcoder
Наверх
Меню