Я пытаюсь установить файл cookie в своем приложении.
Здесь код, который устанавливает cookie:
public HttpResponseMessage LogIn(UserLoginVM user)
{
// Do login stuff
var cookie = new CookieHeaderValue("STUPID-COOKIE", "12345");
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
cookie.HttpOnly = true;
// Get user profile
HttpResponseMessage res = Request.CreateResponse<UserProfileVM>(HttpStatusCode.OK, profile);
res.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return res;
}
Ответ от сервера следующий:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
Set-Cookie: STUPID-COOKIE=12345; domain=localhost; path=/; httponly
Access-Control-Allow-Origin: *
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcUFJPSkVDVFNcU2Ftc2tpcC5TZXJ2aWNlV2ViTmV3XFNhbXNraXAuQXV0aEFQSVxTYW1za2lwLkF1dGhBUElcbG9naW4=?=
X-Powered-By: ASP.NET
Date: Wed, 18 Feb 2015 11:58:07 GMT
Content-Length: 8019
Обратите внимание на следующий заголовок:
Set-Cookie: STUPID-COOKIE=12345; domain=localhost; path=/; httponly
Однако, когда я перехожу под "Cookies" на вкладке "Ресурсы" в Chrome, ничего не устанавливается. Также, когда я отправляю запрос на сервер, в заголовках нет файлов cookie.
Здесь код, который читает файл cookie:
CookieHeaderValue cookie = Request.Headers.GetCookies("STUPID-COOKIE").FirstOrDefault();
cookie
переменная всегда равна нулю.
Мое приложение работает на http://localhost:53998, а служба проверки подлинности работает на http://localhost:60858
Моя версия Chrome - 40.0.2214.111.
Здесь GIF демонстрирует проблему: http://i.imgur.com/q7lkXBz.gif
Изменить: Это, похоже, не относится к Chrome. Это также не работает на FireFox (v35). GIF: http://i.imgur.com/ZewnEtc.gif