Question

Je créé une coutume RouteHandler pour les images que je veux protégé. Mon RouteHandler prend simplement une nouvelle route (graphiques / {nom de fichier}) et fait une recherche pour le vrai chemin du fichier, définit le type mime et la sert. Cela fonctionne très bien. ( http: / /www.mikesdotnetting.com/Article/126/ASP.NET-MVC-Prevent-Image-Leeching-with-a-Custom-RouteHandler )

Ce que je voulais faire ensuite était de faire un chèque dans mon gestionnaire personnalisé pour une variable de session que je mettrais plus tôt pour vous assurer que la personne qui tente de voir l'image avait la permission de le faire.

En fait, ils passeraient un login (entrez un code), qui fixerait une variable de session que je chercherais dans la mesure RouteHandler.

Mon problème est que je ne peux pas sembler obtenir les données de session à partir du RouteHandler personnalisé.

Enfin, ma question est: Comment puis-je définir des données dans un contrôleur et qu'il soit disponible pour moi à partir d'un RouteHandler personnalisé sur une demande ultérieure

Était-ce utile?

La solution

Tout d'abord, du RequestContext passé dans la méthode GetHttpHandler, pouvez-vous pas accéder à la session via requestContext.HttpContext.Session? Je ne sais pas, je pouvais voir ce ne fonctionne pas par défaut car il est si tôt dans le pipeline.

Sinon, vous pouvez toujours déplacer facilement la session logique de vérification dans le gestionnaire en ajoutant IRequiresSessionState interface à votre gestionnaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top