2010-07-26 7 views
1

J'ai une application qui dépend d'un HttpHandler générique que j'ai créé, et cela fonctionne très bien. Le problème est qu'il existe de nombreuses autres applications sous le même dossier dans IIS, et ces autres applications n'ont pas besoin d'utiliser et ne savent pas (ne doit pas savoir) à propos de ce gestionnaire. Cependant, le Web.Config dans lequel je l'enregistre finit par s'appliquer à tous les dossiers du même niveau et de tous les sous-dossiers, et c'est ce que je veux éviter.Puis-je limiter une portée ASP.net HttpHandler?

Modifier la structure des applications dans IIS n'est malheureusement pas possible. J'ai pensé à utiliser la balise location> < sur Web.config, mais j'ai l'impression qu'elle ne modifie que les droits d'accès et non la visibilité.

Des suggestions sur la façon dont cela peut être surmonté?

+0

Je me rends compte maintenant ce manque de détails. Le Handler en question était destiné à servir des images gif à partir d'une base de données derrière les firewalls via un service web vers le site web sur DMZ. Il a retourné un objet Image qui pourrait être utilisé à la volée par la page. – jehuty

Répondre

0

HttpHandlers sont configurés au niveau de l'application. Ces sous-dossiers sont-ils des applications vraiment distinctes? Sinon, il n'y a pas grand chose à faire à ce sujet ... La suggestion d'Aristos pourrait être viable. Si ce sont vraiment des applications, il vous suffira de supprimer spécifiquement le gestionnaire de ces applications.

http://msdn.microsoft.com/en-us/library/e0dzxdza%28VS.71%29.aspx

+0

Oui, malheureusement, ils sont vraiment différents, sans rapport et terriblement hors contexte, des applications. Mais c'est vraiment négociable. – jehuty

0

Je pense que vous devez examiner l'héritage de la configuration et les différentes manières de l'utiliser pour les applications enfants. Peut-être commencer ici:

http://msdn.microsoft.com/en-us/library/ms178685.aspx

http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspx

+0

Savez-vous si un HttpHandler fonctionnerait sur un fichier Web.Config à n'importe quel niveau hiérarchique? – jehuty

1

Vous pouvez appliquer un filtre personnalisé à votre HttpHandler en consultant le fichier qui va passer par votre filtre, et ne garder que celui que vous avez besoin.

Vous pouvez obtenir le nom du fichier qui va passer votre HttpHandler par

HttpContext.Current.Request.Path 

Dans ce nom de fichier que vous pouvez vérifier quoi que ce soit, pour un répertoire, un fichier, pour ce que jamais.

Espérons que cette aide.