Я надеюсь, что кто-то может мне помочь. Мы пишем приложение MVC, используем AspNet Identity и OWIN, и пытаемся установить время ожидания 4 часа. Тем не менее, кажется, что независимо от того, какое время мы установили для тайм-аута сайта через 30 минут, мы перенаправляемся на страницу входа.
Кроме того, это приложение MVC в EpiServer, но механизм использования AspNet Identity и OWIN тот же.
В нашем web.config у нас есть следующие настройки:
<authentication mode="None">
</authentication>
и
<sessionState mode="InProc" timeout="240" />
и, в настройках приложения,
<add key="SessionTimeout" value="240" />
В нашем классе запуска OWIN у нас есть следующий код:
public class Startup
{
public void Configuration(IAppBuilder app)
{
CookieAuthenticationProvider provider = new CookieAuthenticationProvider();
Action<CookieApplyRedirectContext> originalHandler = provider.OnApplyRedirect;
provider.OnApplyRedirect = context =>
{
context.RedirectUri = $"{new PathString(Global.LoginPath)}/?session_expired=1";
originalHandler.Invoke(context);
};
provider.OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager<PortalDirectApplicationUser>, PortalDirectApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => manager.GenerateUserIdentityAsync(user));
app.SetupPortalDirectAspNetIdentity<PortalDirectApplicationUser>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName = "OurCookie",
LoginPath = new PathString(Global.LoginPath),
Provider = provider,
SlidingExpiration = true,
ExpireTimeSpan = TimeSpan.FromMinutes(int.Parse(ConfigurationManager.AppSettings["SessionTimeout"]))
});
}
}
Таким образом, время ожидания в классе запуска также составляет 240 минут.
Может ли кто-нибудь указать мне правильное направление, почему сайт отключается через 30 минут? Я искал ответы и явно не правильно что-то настраивал.
Спасибо!