/ / MVC 5 Tempo limite de logout - asp.net-mvc, entidade-estrutura, autenticação, logout

MVC 5 Timeout de logout - asp.net-mvc, entidade-estrutura, autenticação, logout

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 № 1

Isso 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.