Я создал готовый проект Web Forms 4.5.2 с индивидуальными учетными записями пользователей. Я не могу заставить тайм-аут входа в систему работать. Я обновил Web.config, чтобы установить время ожидания на 12 минут:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="12" slidingExpiration="true"
requireSSL="true" />
</authentication>
Я явно установил время ожидания сеанса на 20 минут, хотя я предполагаю, что это будет значение по умолчанию:
<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="20">
Это мое понимание , что с slidingExpiration
, установленным в true, если истекшее время составляет больше, чем половина времени сеанса, время ожидания сбрасывается при обновлении браузера. Помимо slidingExpiration
, тайм-аут просто не работает, так как я все еще вошел в систему при обновлении браузера через 12 минут.
Когда это не сработало, я посмотрел на файл Startup.Auth.cs и также изменил временной интервал до 12 минут. Я предположил, что это связано с истечением срока действия куки:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity =
SecurityStampValidator.OnValidateIdentity<ApplicationUserManager,
ApplicationUser>(validateInterval: TimeSpan.FromMinutes(12),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
Я использую локально установленный экземпляр SQL Server 2014:
<add name="DefaultConnection"
connectionString="Server=XXX;Database=abc;user ID=myself;password=myself123"
providerName="System.Data.SqlClient" />
В IIS состояние сеанса установлено на «В процессе», а настройки файлов cookie следующие:
![enter image description here](https://i.stack.imgur.com/1Omxa.jpg)
Все еще не работает. Чего мне не хватает?
UPDATE
Я добавил самоподписанный сертификат на моей локальной машине разработчика, но все еще не мог получить тайм-аут на работу; постоянно вошел в систему. Должен ли я написать определенный код, чтобы получить эту функциональность? До сих пор я работал только со старой системой членства и не очень знаком с Оуэном / Катаной / Идентификацией / EF.