MVC 5 Tempo limite de logout

9

Os usuários são solicitados a fazer login a cada 20 minutos ou mais.

Uma dessas situações em que não sabemos onde procurar. Estou usando o C # MVC 5 IdentityFramework 1.0.0

Eu quero fazer o tempo limite para 4 horas.

Até agora eu 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?

EDIT - SOLUÇÃO

A solução é colocar machineKey no web.config em system.web. O gerador de chaves pode ser encontrado link

Eu também migrei para o Identity 2.0 e mantive essas configurações. Migrou usando este blog como um guia: link

    
por HerGiz 29.06.2014 в 20:54
fonte

2 respostas

2

Isso acontece mesmo se você executar o site localmente? Dê uma olhada em esta postagem do 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. "Poderia a chave da máquina ser   mudando ao longo do tempo no meu servidor de hospedagem compartilhada? ", eu me perguntei.

     

Antes de enviá-los por e-mail, consultei a documentação no MSDN para   machineKey e descobriu que existe um modo AutoGenerate que pode   ser definido para gerar novamente uma nova machineKey cada vez que o processo host for   o aplicativo da web é iniciado… após 20 minutos de inatividade! Ah ha!

    
por jailmi 27.08.2014 / 12:47
fonte
0

Certifique-se de que você não tenha nenhuma atividade de ajax em segundo plano, pois ela afeta a sessão (por padrão, SlidingExpiration é true). Além disso, você precisa excluir manualmente os cookies antigos após alterar o ExpireTimeStamp do padrão 14 dias para um valor menor.

    
por user2138919 30.06.2014 / 09:52
fonte