Http handler para aplicação ASP clássica para introduzir uma camada entre cliente e servidor

5

Eu tenho um aplicativo ASP clássico enorme, onde milhares de usuários gerenciam seus dados corporativos / comerciais. Atualmente, esse não é um multiusuário para que os usuários do aplicativo possam criar usuários e autorizá-los a acessar determinadas áreas do sistema.

Estou pensando em escrever um manipulador que funcionará como intermediário entre o cliente e o servidor e passar por todas as solicitações e descobrir quem é o usuário e se ele está autorizado a acessar os dados que está tentando.

Por enquanto ignore sobre a parte como eu vou verificar a autorização e todas essas coisas. Só quer saber se eu posso implementar um manipulador ASP.net e usá-lo como intermediário para as solicitações que chegam para um site da ASP? Eu só quero ler o URL e ver qual é a página que o usuário está tentando acessar e quais são os parâmetros que ele está passando no URL dos dados postados. Isso é possível? Eu li que o manipulador Asp.net não pode ser usado com o site ASP e eu preciso usar o filtro isapi ou extensões para isso e que pode ser desenvolvido apenas c / c + +.

Alguém pode através de alguma luz sobre isso e me orientar se estou na direção certa ou não?

    
por JPReddy 25.06.2012 / 00:33
fonte

2 respostas

3

Um manipulador .Net não pode ser usado com ASP porque o IIS só pode entregar a solicitação para um manipulador para cada solicitação. ASP e .Net têm manipuladores distintos.

Se você quisesse escrever um .Net HTTPModule para atuar como um Man in the Middle, o manipulador da solicitação precisaria ser .Net.

Eu não tentei, mas acho que se você escreveu um .net HTTPHandler para atender a página ASP (que basicamente apenas executa o ASP como um VBScript), você teria complicações com os objetos Request e Response. Provavelmente mais esforço do que vale mesmo tentando.

Um filtro ISAPI seria o caminho mais simples, mas pode não ser prático se você não tiver a experiência C ++. Mas o que você está fazendo não parece particularmente novo e pode haver uma implementação existente que você possa usar.

    
por 23.08.2012 / 16:51
fonte
3

Se você estiver no IIS7, poderá escrever um .NET HTTP Module e usá-lo no pipeline de solicitação do ASP clássico. O principal desafio seria como descobrir quem está logado no seu aplicativo ASP clássico do ASP.NET.

Se você estiver no IIS6, sua única opção será ISAPI.

Os HttpHandlers resolvem um problema diferente - eles manipulam uma solicitação depois que os módulos os filtram e os modificam. Eles não são adequados para esse tipo de função de filtro.

    
por 23.08.2012 / 19:55
fonte