Os usuários são solicitados a fazer login a cada 20 minutos ou mais.
Uma daquelas situações em que não sei onde procurar. Estou usando o C # MVC 5 IdentityFramework 1.0.0
Eu quero fazer o tempo limite para 4 horas.
Até agora tentei no web.config:
<system.web>
<sessionState timeout="2880"></sessionState>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
</system.web>
e em Startup.Auth.sc:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
ExpireTimeSpan = TimeSpan.FromHours(4),
CookieSecure = CookieSecureOption.Never,
CookieHttpOnly = false,
SlidingExpiration = true,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
o que estou perdendo?
EDITAR - SOLUÇÃO
A solução é colocar machineKey em web.config em system.web. O gerador de chaves pode ser encontrado http://aspnetresources.com/tools/machineKey
Eu também migrei para o Identity 2.0 e mantive essas configurações. Migrado usando este blog como guia: http://typecastexception.com/post/2014/07/13/ASPNET-Identity-20-Extending-Identity-Models-and-Using-Integer-Keys-Instead-of-Strings.aspx
Respostas:
2 para resposta № 1Isso acontece mesmo se você administrar o site localmente? Dê uma olhada em este post de blog descrevendo um caso semelhante.
O ponto da postagem do blog é:
... lembre-se de que a autenticação de formulários usa a machineKey do computador para criptografar o cookie de autenticação de formulários. "A chave da máquina pode ser mudando com o tempo no meu servidor de hospedagem compartilhada? ", eu me perguntei.
Antes de enviar um e-mail para perguntar, olhei para odocumentação no MSDN para machineKey e descobri que há um modo AutoGenerate que pode ser definido para regenerar uma nova machineKey cada vez que o processo host para o aplicativo da web é iniciado ... depois 20 minutos de inatividade! Ah ha!
0 para resposta № 2
Certifique-se de não ter nenhum Ajax de fundoatividade, pois afeta a sessão (SlidingExpiration é true por padrão). Além disso, você deve excluir manualmente os cookies antigos após alterar o ExpireTimeStamp do valor padrão de 14 dias para um valor menor.