Pergunta

Temos um extenso site ASP clássico e pretendemos atualizar para ASP .Net (provavelmente a versão mais recente).Obviamente, atualizar todas as páginas de uma vez seria uma tarefa leviatã, portanto, inicialmente, estamos apenas procurando escrever novas páginas (e reescrever páginas) em ASP .Net.

Existem dois obstáculos para fazer isso:

  1. Não tenho ideia de como acessar dados de sessão ASP clássicos em ASP .Net.Isso só precisaria ser configurado uma vez, pois nunca é modificado por nenhuma página que não seja a página de login.Eu preferiria fazer alterações mínimas na página de login ASP clássica, mas isso é apenas uma pequena preferência.

  2. As sessões ASP e ASP .Net teriam que atingir o tempo limite ao mesmo tempo, para manter a diferença de versão contínua.

Alguém poderia oferecer alguma ajuda, por favor?

Desde já, obrigado.

Foi útil?

Solução

Enfrentamos a mesma tarefa (não é divertida).Como a sessão Asp.Net e a sessão Asp não podem ser compartilhadas, usamos uma combinação de métodos, cada um apropriado à situação.

  • Em alguns casos, usamos cookies em vez de sessão.
  • Em outros, configuramos formulários de postagem automática para que, se as informações da sessão de um usuário fossem definidas em uma página ASP clássica, depois que as informações da sessão fossem definidas, redirecionávamos para uma página Asp.Net que lia os parâmetros da string de consulta e os usava para definir as mesmas variáveis ​​de sessão para Asp.Net.Então, uma vez que a página Asp.Net definiu as mesmas variáveis, essa página redirecionou para qualquer página para a qual a página de login original apontava anteriormente.O mesmo funcionou ao contrário.

Portanto, no segundo cenário, um fluxo de exemplo teria mudado de:

O usuário tenta acessar uma página de conteúdo protegido -> Redirecionada para a página de login -> Loges -> Conjunto de informações da sessão com base no sucesso do login -> Redirecionada de volta à página de conteúdo.

para

O usuário tenta acessar algumas páginas de conteúdo protegido -> Redirecionada para a página de login -> Loges -> Conjunto de informações da sessão com base no sucesso do login -> redirecionado para uma página .NET, passando por credenciais de login etc.-> ASPX Page define as informações da sessão e depois redireciona imediatamente para a página de conteúdo.

Sabíamos que era um hack, mas funcionou no curto prazo até que conseguíssemos converter todos os sites.

Outras dicas

Pode haver uma maneira melhor de fazer isso usando as configurações mais recentes do IIS (deve admitir que não me mantive atualizado sobre o que os novos presentes que o IIS7 podem fazer). Mas você pode fazer um XMLRequest da sua página de login ASP para uma página do ASP.NET. Você pode passar pelas configurações necessárias nos dados da postagem ou que a página .NET preencha os dados da sessão se a lógica for simples o suficiente. A página .NET retornaria um ID da sessão .NET no cookie, você precisa definir isso na coleção de cookies dos usuários do ASP, para que esse usuário tenha um cookie .NET e Classic ASP Session.

Isso faria isso.

Eu implementei isso há alguns anos usando um banco de dados.

A Microsoft tem um lindo bom artigo nele, embora esteja um pouco velho neste momento.

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