2016-02-29 3 views
2

Я использую аутентификацию cookie в приложении ASP.NET MVC6. Моя конфигурация выглядит следующим образом:Потеря аутентификации при перезапуске dnx

app.UseCookieAuthentication(options => 
{ 
    options.CookieName = "ow.2a"; 
    options.ReturnUrlParameter = "r"; 
    options.AuthenticationScheme = "TwoFactor"; 
    options.ExpireTimeSpan = TimeSpan.FromHours(4.0); 
    options.SlidingExpiration = true; 
    options.AccessDeniedPath = new PathString("/login"); 
    options.LoginPath = new PathString("/login"); 
    options.AutomaticAuthenticate = true; 
    options.AutomaticChallenge = true; 
}); 

И вот мой код Логин:

await HttpContext.Authentication.SignInAsync("TwoFactor", 
    new ClaimsPrincipal(new ClaimsIdentity(new[] 
     { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }, "Password")), 
    new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(4.0) }); 

Я заметил, что каждый раз в некоторое время (около 15 минут), я заметил, что я получаю войти выкл. Я последовал за these instructions, чтобы разместить мое приложение в IIS. Проблема связана с перезапуском процесса dnx. Я могу понять, закрыв этот процесс после определенного периода бездействия, но не знаю, почему cookie аутентификации станет недействительным. Идеи?

ответ

4

Файлы cookie аутентификации зашифрованы. Если вы не запустили сценарий инициализации, упомянутый в документах;

Для сохранения ключей защиты данных вы должны создать кусты реестра для каждого пула приложений для хранения ключей. Вы должны использовать Provisioning PowerShell script для каждого пула приложений, в котором вы будете иметь ASP.NET 5 приложений.

или у вас есть configured data protection вручную в вашем коде ключи будут храниться в памяти и отбрасываться, когда приложение останавливается. Итак, вы следовали всем шагам в инструкции? :)

+0

Это было бы так. У меня не было каких-либо приложений/пользовательских ключей, поэтому я не думал, что мне нужно настроить защиту данных .. –

+0

Вот почему этот шаг есть :) Я отправлю изменение чтобы сделать его более ясным. – blowdart

Смежные вопросы