2010-12-09 16 views
1

Est-il possible d'injecter une requête dans IIS pour une page, IIS et ASP.Net la gèrent comme d'habitude, mais obtiennent la réponse au format html retour à moi par programme? Oui, je sais que je pourrais me connecter au port 80 en utilisant WebRequest et WebResponse, mais cela devient difficile si vous accédez au serveur IIS à partir de la même machine physique (contrôles de sécurité en boucle et al). Fondamentalement, je veux injecter la demande (par exemple pour http://example.org/MyPage.aspx) entre les points où IIS parlerait normalement au navigateur, et le point où il le dirigerait à l'application ASP.Net correcte, et obtenir un réponse de IIS entre les points auxquels ASP.Net/IIS applique les httpfilters et remet le html au navigateur. Je travaille principalement avec IIS7, donc s'il y a une solution qui fonctionne uniquement pour IIS7, ce n'est pas un problème.Accéder au pipeline de traitement des requêtes d'IIS pour injecter une requête et obtenir la réponse html

+0

Pourquoi en avez-vous besoin? Si vous spécifiez, j'ai quelques idées en tête. – Aliostad

+0

Quel contrôle de sécurité de bouclage? À ma connaissance, rien ne vous empêche, par défaut, d'accéder aux sites qui s'exécutent sur le serveur local. Heck je le fais tous les jours. – blowdart

+0

@blowdart http://support.microsoft.com/kb/926642 – Moo

Répondre

1

Vous pouvez mettre en œuvre un HttpModule personnalisé, qui vous donnera accès au pipeline IIS, y compris la réponse finale. Toutefois, vous devez toujours lancer une demande auprès d'IIS pour lancer le traitement. Je ne sais pas si cela fonctionnerait pour vous.

De the MSDN documentation:

Un module HTTP est un ensemble qui est appelé à chaque demande qui est faite à votre application. Les modules HTTP sont appelés dans le pipeline de demandes et ont accès aux événements de cycle de vie tout au long de la demande. Les modules HTTP vous permettent donc d'examiner les demandes entrantes et de prendre des mesures en fonction de la demande . Ils vous permettent également d'examiner la réponse sortante et de la modifier.