Pergunta

Em um trabalho anterior, tivemos um aplicativo ASP clássico que ninguém queria migrar para ASP.NET. As coisas que ele fez, ele fez muito bem.

No entanto, houve algumas novas funcionalidades que precisava ser acrescentado que apenas parecia mais adequado para ASP.NET. A decisão foi tomada para permitir que o sistema se torne um híbrido estranha de ASP e ASP.NET.

Nosso maior ponto de discórdia foi a gestão de sessões e nós cortado em conjunto uma solução para passar valores de sessão através de variáveis ??de formulário. Falei com outros que manipulados este mesmo problema através de cookies.

Ambos os métodos parecer um kluge horrível (além de ser terrivelmente inseguro).

Existe uma melhor ou mais limpa maneira ou é apenas uma má idéia para começar com que a discussão sobre o tema é inútil?

Foi útil?

Solução

Você não pode persistir dados de sessão para um armazenamento de dados serverside? ou seja, arquivo XML, banco de dados etc. Você poderia então passar apenas um hash (calculado com base em alguns critérios que identifica de forma segura a sessão) para uma página .NET que pode o pegar os dados a partir do armazenamento de dados usando este identificador e preencher seus dados de sessão . Ainda significa ter que passar solicitações de ASP para ASP.NET através de um proxy de cada vez para garantir que os dados sessão mais recente está disponível em cada aplicativo, mas eu não sei de uma maneira alternativa para atingir esse receio.

Outras dicas

Eu tive que lidar com o mesmo problema. No meu caso, eu criptografada uma chave em um cookie e usou o banco de dados para qualquer outra informação. Eu escrevi a criptografia no .NET e inter-op'd para descriptografar o id no lado da ASP. Há alguma estranheza lidar com base 64 string no que ASP não terá a mesma seqüência como .NET, assim você pode ter que fazer como eu fiz e reescrever a string base-64 em hexadecimal equivalente ou alguma semelhante menor denominador comum tática. É relativamente seguro (Salvar um ataque XSS).

Bem, em última análise, a melhor idéia seria provavelmente ter convertido o aplicativo ASP para .NET. Eu acho que provavelmente vai sem dizer embora. Se a segurança é uma grande preocupação, existem passos que você pode tomar, tanto quanto criptografia e manter a integridade das informações sessão, para torná-lo mais seguro, como alguns criptografia simétrica e hashing e quais não.

Eu não sei de qualquer maneira mais limpa de fazer isso no caso geral. Mas, talvez, você pode descrever mais especificamente o estado que você tem a participação entre os sistemas? Pode haver uma solução mais limpa no seu caso específico. Sessão estado do objeto não são sempre a melhor maneira de manter estado.

Eu teria que concordar com Wes P ... o que são as metas de longo prazo? Se o objetivo a longo prazo é migrar o aplicativo ASP clássico para o ASP.NET, então eu acho que a curto prazo correção, seja ela qual for, vai funcionar. Se a longo prazo é manter a aplicação ASP clássico, então você seria melhor fora de ir com uma solução mais robusta para gerenciamento de sessão, semelhante ao que Oglester recomendado.

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