È possibile saltare un HttpHandler se non c'è querystring?
-
06-07-2019 - |
Domanda
Ho scritto un ridimensionatore di immagini dinamico come HttpHandler. Viene chiamato automaticamente su qualsiasi cosa con un'estensione di immagine, quindi ad esempio:
http://www.mysite.com/picture.jpg?width=200&height=100
eseguirà il gestore e restituirà un'immagine in miniatura con le intestazioni di risposta appropriate. Tuttavia, desidero che il gestore lasci "passare" una richiesta se viene chiamata senza una stringa di query:
http://www.mysite.com/picture.jpg
Voglio che questo restituisca l'immagine con le informazioni di intestazione come se non l'avesse eseguita attraverso il gestore. È possibile senza dover codificare manualmente nelle informazioni dell'intestazione (che comporta l'apertura di filestreams per leggere dati come l'ultima data scritta), oppure devo invece convertire il mio gestore in un HTTPModule
?
Soluzione
Un gestore deve " gestire " la richiesta. È la fine della catena. O devi renderlo un HttpModule oppure devi servire tu stesso l'immagine, indipendentemente dal ridimensionamento.
Altri suggerimenti
Non potresti semplicemente adattare il gestore per tenere conto di questo caso? Potresti semplicemente assicurarti che non ci siano parametri della stringa di query e mappare semplicemente il percorso della richiesta sul disco e restituire l'immagine direttamente aprendola e scrivendola nel flusso di output.