/ / timeout da sessão dinâmica - sessão, cakephp, timeout

tempo limite da sessão dinâmica - sessão, cakephp, timeout

Posso alterar o tempo limite da sessão dinamicamente? O tempo limite deve ser definido de acordo com a função do usuário. Eu tentei usar configure :: write para alterar o tempo limite dinamicamente, mas não funciona.Para parece que para o novo tempo limite de sessão para ter efeito, você tem que redefinir a sessão, mas redefinir a sessão perderá as informações de login.

Respostas:

0 para resposta № 1

Acho que usar algo como o seguinte, depois de verificar a associação de função, fará com que você tenha o que deseja.

HttpContext.Current.Session.Timeout = 1200;

0 para resposta № 2

Eu acho que você está certo ao dizer que você não pode alterar o tempo limite da sessão depois que ele foi criado, talvez você poderia olhar para regenerar um com um novo tempo limite.

Mas talvez uma solução mais fácil seria usarjavascript, você pode definir um valor de tempo limite e, quando acabar, enviar uma solicitação ajax, registrando o usuário. Obviamente, isso não funcionará se um usuário desativar o javascript, mas isso depende de quão seguro você deseja que ele seja.


0 para resposta № 3

Em vez de alterar o tempo limite da sessão, você considerou o uso de uma variável na sessão para armazenar a data / hora do último pageload, para que você possa verificá-la no próximo pageload?

Você poderia adicionar algum código ao beforeFilter ()método no AppController para calcular a quantidade de tempo decorrido entre o último pageload (armazenado na sessão) e agora, e se este for maior que o tamanho da sessão para sua função de usuário especificada, destrua a sessão. Caso contrário, armazene a data / hora atual na sessão, para que ela possa ser usada na próxima vez.