Eu tentei muito, mas não consigo encontrar uma solução sobre como definir o valor do tempo limite da sessão para uma sessão em processo de um aplicativo Web ASP.Net.
Estou usando o VSTS 2008 + .Net 3.5 + C #. Aqui está o que eu escrevi para definir o tempo limite para 1 minuto, está correto?
Eu escrevi na seção system.web no web.config
<sessionState timeout="1" mode="InProc" />
Respostas:
Se você deseja definir o tempo limite para 20 minutos, use algo como isto:
fonte
O valor que você está configurando no
timeout
atributo é uma das maneiras corretas de definir o valor do tempo limite da sessão.O
timeout
atributo especifica o número de minutos que uma sessão pode ficar inativa antes de ser abandonada. O valor padrão para este atributo é 20.Ao atribuir um valor 1 a esse atributo, você configurou a sessão para ser abandonada em 1 minuto após a inatividade.
Para testar isso, crie uma página aspx simples e escreva esse código no evento Page_Load,
Abra um navegador e vá para esta página. Um ID de sessão será impresso. Aguarde um minuto para passar, e clique em Atualizar. O ID da sessão será alterado.
Agora, se meu palpite estiver correto, você deseja fazer com que seus usuários se desconectem assim que a sessão terminar. Para fazer isso, você pode criar uma página de login que verifique as credenciais do usuário e crie uma variável de sessão como esta -
Agora, você precisará executar uma verificação em todas as páginas dessa variável como esta -
Este é um exemplo básico de como isso funcionará.
Mas, para tornar seus aplicativos seguros com qualidade de produção, use as classes Funções e Associação fornecidas pelo ASP.NET. Eles fornecem autenticação baseada em formulários, que é muito mais confiável que a autenticação baseada em sessão normal que você está tentando usar.
fonte
Se você estiver usando o MVC, coloque isso no arquivo web.config no diretório Raiz do aplicativo Web, não no web.config no diretório Views. Ele também precisa estar no nó system.web, não como George2 afirmou em sua pergunta: "Eu escrevi na seção system.web no web.config"
O valor do parâmetro timeout representa minutos.
Existem outros atributos que podem ser configurados no elemento sessionState. Você pode encontrar informações aqui: docs.microsoft.com sessionState
Você pode capturar o início de uma nova sessão no arquivo Global.asax adicionando o seguinte método:
fonte
Use isso em
web.config
:fonte
timeout
realmente.stateConnectionString
esqlConnectionString
são ignorados quandomode="InProc"
, e os valores paramode
ecookieless
são definidos com seus valores padrão. Então, isso realmente se resume à resposta de Wolfwyrd.Se não estiver funcionando
web.config
, é necessário configurá-lo no IIS.fonte