UPDATE:ASP.NET ядра 1,0 - MVC 6 - Cookie Истечение
Это, безусловно, не является ошибкой в RC1. Настройки cookie работают с UserManager по умолчанию и UserStore, поэтому он должен быть чем-то связанным с моим UserManager/UserStore, который я контролировал. Я в основном использовать реализацию здесь: https://github.com/jesblit/ASPNET5-FormAuthenticationLDAP
Оригинал сообщения:
У меня есть проблема с постоянными логинов. Независимо от того, как я настрою файл cookie, через 30 минут Пользователь автоматически выйдет из системы (независимо от того, насколько пользователь взаимодействует с приложением).
установка I мой App с:
public void ConfigureServices(IServiceCollection services)
{
services.AddCaching();
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromDays(1);
options.CookieName = ".MySessionCookieName";
});
services.AddEntityFramework()
.AddNpgsql()
.AddDbContext<Model1>(options =>
options.UseNpgsql(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<MinervaUser, MinervaRole>(options => {
options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(1);
options.Cookies.ApplicationCookie.SlidingExpiration = true;
options.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
})
.AddUserStore<MinervaUserStore<MinervaUser>>()
.AddRoleStore<MinervaRoleStore<MinervaRole>>()
.AddUserManager<MinervaUserManager>();
services.AddMvc();
}
И:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
try
{
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
{
}
}
catch { }
}
app.UseIISPlatformHandler(options => { options.AuthenticationDescriptions.Clear(); options.AutomaticAuthentication = true; });
app.UseSession();
app.UseIdentity();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Войти Действие:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation(1, "User logged in.");
return RedirectToLocal(returnUrl);
}
...
Я использую по умолчанию SignInManager. Как сказано, тайм-ауты истечения срока действия, которые я установил в Startup.Configure и Startup.ConfigureServices, не имеют никакого эффекта. Войти -> 30 мин -> автоматического выход :(
Что делать, чтобы продлить этот период времени
(кстати: настраиваемый пользователь, UserManager, UserStore не мешает Teh Cookie в любом случае, они? «просто» проверить учетные данные (то, что они должны;)))
Похоже, вы используете версию RC1 или ранее. Я не думаю, что стоит попытаться понять, потому что это может быть ошибка Microsoft. Я бы обновил RC2 и посмотрю, что произойдет. –