Owin cookie authentication set-cookie не сохраняется в браузере

Я создаю автономный веб-сервер на этом стеке: OWIN Нэнси Web Api 2

и я использую Microsoft.Оуин.Безопасность.Cookies от Katana для проверки подлинности, подобной формам. Я получил заголовок Set-Cookie в ответ, но cookie не сохраняется и не включается в следующий запрос. Так в чем проблема? Что я делаю не так?

запуск Owin:

app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            AuthenticationMode = AuthenticationMode.Active,
            AuthenticationType = "GM",
            CookieHttpOnly = true,
            CookieSecure = CookieSecureOption.SameAsRequest,
            CookiePath = "/",
            CookieName = CookieAuthenticationDefaults.CookiePrefix + "GM",
            CookieDomain = "localhost",
        });

код контроллера:

var context = Request.GetOwinContext();
context.Authentication.SignIn(new AuthenticationProperties()
    {
        IsPersistent = true
    },
    new ClaimsIdentity(new[] {new Claim(ClaimsIdentity.DefaultNameClaimType, user.Login)}, "GM"));
context.Response.Headers.Add("Location", new []{ "/" });
return Request.CreateResponse(HttpStatusCode.Found);

заголовки ответа:

Cache-Control:no-cache
Content-Length:0
Date:Wed, 11 Sep 2013 11:11:23 GMT
Expires:-1
Location:/
Pragma:no-cache
Server:Microsoft-HTTPAPI/2.0
Set-Cookie:.AspNet.GM=AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAABui2rBibE0yPXB0-v3C06gAAAAACAAAAAAAQZgAAAAEAACAAAAC1mQV3jGo_WAhMQ-hzsmzgkdbdCclWIAX-msbE0_12zQAAAAAOgAAAAAIAACAAAABuQjBg3EJIka151hvBgtlPGfQ2O_cwNI2VVh86dchTDXAAAAD21O9DnNk4yLU9eddVfY3bT9P1CEudNeLvwohkSTAQBP2onuIQfgl9F99Je5waPddckh2llD2kjftSMQPhzgE9vKm-_wE42hXhc9FIgfxpD5AdaeGatwpEcwDfGJJdpQnObX1pbjEFIXLVJxGm5qMUQAAAAC8AiFTaXmzrfRy4-jR6zqMmSKddzddmiBLGClAckWOy6W2YWdf50N2zhIj_MwN8-zi-B0tlv87pzAt-6RDZYZs; domain=localhost; path=/; expires=Wed, 25-Sep-2013 11:11:24 GMT; HttpOnly

2 ответов


Я решил эту проблему. Это было потому, что "домен=localhost". Вроде как "localhost" не является допустимым значением для параметра домена.


вы может быть encounting подобный вопрос: Safari не устанавливает Cookie, но IE / FF делает

попробуйте установить HttpStatusCode в HttpStatusCode.Ok

некоторые браузеры будут принимать куки только из определенного кода ответа (например, 200, 302).