У меня есть приложение 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).
Вы не можете устанавливать файлы cookie на localhost, по крайней мере, не с Chrome.
Вам нужно хотя бы название из двух частей, например mytestsite.local, или вам нужно установить
Domain = null
в коде С#.