Eu tenho um código que estou pesquisando sobre o tempo limite da sessão no site. No web.config me deparei com esse código.
<authentication mode="Forms">
<forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>
<sessionState timeout="30" />
Alguém sabe se um tem precedentes sobre o outro e como eles são diferentes. Obrigado.
asp.net
session
web-config
Lucky Luke2
fonte
fonte
Respostas:
São coisas diferentes. As formas valor Authentication Timeout define a quantidade de tempo em minutos que o cookie de autenticação é definida para ser válido, o que significa que, depois de
value
vários minutos, o cookie expira eo usuário não vai mais ser autenticado, eles serão redirecionados para o login página automaticamente. OslidingExpiration=true
valor está basicamente dizendo que, enquanto o usuário fizer uma solicitação dentro do valor do tempo limite, ele continuará sendo autenticado (mais detalhes aqui ). Se você definirslidingExpiration=false
o cookie de autenticação expirará após umvalue
número de minutos, independentemente de o usuário fazer uma solicitação dentro do valor do tempo limite ou não.O
SessionState
valor do tempo limite define a quantidade de tempo que um provedor de Estado da Sessão é necessário para armazenar dados na memória (ou qualquer armazenamento de backup que estiver sendo usado, SQL Server, OutOfProc, etc) para uma sessão específica. Por exemplo, se você colocar um objeto na Sessão usando o valor no seu exemplo, esses dados serão removidos após 30 minutos. O usuário ainda pode estar autenticado, mas os dados na Sessão podem não estar mais presentes. OSession Timeout
valor é sempre redefinido após cada solicitação.fonte
Isso não está correto. O tempo limite do cookie de autenticação será redefinido apenas se metade do tempo limite tiver passado.
Consulte, por exemplo, https://support.microsoft.com/de-ch/kb/910439/en-us ou https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -tempo esgotado/
fonte
Pelo que entendi, eles são independentes um do outro. Ao manter o tempo limite da sessão menor ou igual ao tempo limite da autenticação, você pode garantir que nenhuma variável de sessão específica do usuário seja persistida após o tempo limite da autenticação (se essa é a sua preocupação, que eu acho que é a normal quando perguntamos isso questão). Obviamente, você precisará lidar manualmente com o descarte de variáveis de sessão no logout.
Aqui está uma resposta decente que pode responder à sua pergunta ou pelo menos apontá-lo na direção certa:
fonte
A diferença é que um (tempo limite dos formulários) tem a ver com a autenticação do usuário e o outro (tempo limite da sessão) tem a ver com o tempo em que os dados armazenados em cache são armazenados no servidor. Portanto, são coisas muito independentes, de modo que um não tem precedência sobre o outro.
fonte
Essa configuração me envia para a página de login a cada dois minutos, o que parece contrariar as respostas anteriores
fonte
Para quem se deparar com essa questão, consulte esta documentação da MS - ela possui realmente bons detalhes sobre a configuração de Tempo limite de autenticação de formulários.
Este documento explica detalhadamente o comentário que o bmode está fazendo na Resposta Aceita - sobre o Cookie Persistente (Sessão vs Expiração)
https://docs.microsoft.com/pt-pt/aspnet/web-forms/overview/older-versions-security/introduction/forms-authentication-configuration-and-advanced-topics-cs#specifying-the-tickets- valor de tempo limite
fonte