Qual é a melhor solução alternativa para o tempo limite de autenticação de formulários ASP.NET ao usar o mapeamento curinga?

StackOverflow https://stackoverflow.com/questions/57739

Pergunta

Minha equipe está trabalhando em um site antigo e de baixa qualidade e a maioria das páginas ainda é ASP clássica.No entanto, migramos recentemente para autenticação de formulários usando ASP.NET e mapeamento curinga.Tudo funciona surpreendentemente bem, exceto por uma coisa:os usuários logados estão expirando muito rapidamente.Depois de examinar os registros, parece que as pessoas atingiram o tempo limite exatamente após 20 minutos (que é o tempo limite especificado devido à inatividade).

Portanto, nossa hipótese é que as páginas clássicas do ASP não estão acionando nenhum mecanismo na estrutura de autenticação de formulários que redefine o temporizador de inatividade.Pesquisei no Google e até li a postagem de mapeamento de curinga do Great Gu, mas ainda não consigo encontrar mais ninguém que esteja tendo esse problema.Então, 1) Você já viu esse problema?e 2) Qual é a melhor solução alternativa?(além de colocar manualmente um quadro oculto em cada página ASP desorganizada que carrega uma página .NET idiota em segundo plano)

Atualizar: deslizamentoExpiração está configurado para verdadeiro

Também:Não podemos usar sessões perpétuas porque precisamos que o tempo limite do aplicativo expire após 20 minutos de inatividade.Além disso, este site terrível foi escrito para que a interface geralmente seja armazenada na página.Não há nenhum código de interface simples no qual eu possa inserir o JavaScript.Tentamos colocar alguns js em um arquivo de inclusão que foi chamado por cerca de 80% de nossas páginas, mas isso causou alguns problemas esotéricos com buffers de download de arquivos, então talvez tenhamos que tentar uma abordagem diferente.Obrigado.

Foi útil?

Solução

Crie uma sessão perpétua.

Essencialmente, você acaba emitindo algum JavaScript e uma tag de imagem na sua página mestra ou nos controles de usuários de navegação (o que quer que você esteja usando para uma navegação consistente).Este JavaScript em algum intervalo altera a origem da tag da imagem para um endpoint do manipulador http (alguns .aspx, .ashx) que retorna um gif transparente de 1x1 pix como resposta para a imagem.A solicitação constante garante que as páginas inativas manterão a sessão ativa.

Enquanto uma janela do navegador estiver aberta em sua página, sua sessão ASP.NET nunca expirará.

Freqüentemente, o JavaScript adiciona um número aleatório à solicitação para que o navegador não armazene a solicitação em cache.

Um passo a passo decente está disponível aqui.

Outras dicas

Presumo que você criou o cookie manualmente; nesse caso, o valor do tempo limite no código provavelmente está substituindo o valor do tempo limite na configuração.

Primeiro, se possível (o que provavelmente não é), não crie o cookie manualmente, pois isso o salvará não apenas dessa dor de cabeça, mas de dezenas de outras.

Se você precisar criar o cookie manualmente, certifique-se de que o tempo limite que você está usando esteja realmente lendo o valor de tempo limite que você definiu no arquivo de configuração e que a expiração deslizante esteja definida como verdadeira (o que você disse que era).

Dito isto, ainda temos problemas ocasionais de tempo limite quando os cookies são criados manualmente.Onde trabalho implementámos uma solução que permitiu a criação automática de cookies e os timeouts deixaram de ser um problema;no entanto, criou outros problemas e fomos forçados a voltar atrás.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top