Peut-être que c'est plus une question ASP.NET MVC qu'une question Orchard mais je suis relativement nouveau à la fois et je ne connais pas la réponse dans les deux cas. Les applications ASP.NET MVC n'ont techniquement pas de point d'entrée unique, alors où dois-je mettre du code que je veux toujours exécuter chaque fois que quelqu'un visite une page, indépendamment de la couche ou de l'origine ou des permissions ? Existe-t-il une façon spécifique pour Orchard de le faire?Où dois-je mettre du code que je veux toujours exécuter pour chaque requête?
Si cela fait une différence, ce que j'essaie spécifiquement de faire en ce moment, c'est de restreindre la plage IP qui a accès à mon site Web. Je veux examiner chaque demande entrante et vérifier si l'utilisateur est authentifié ou a une adresse IP dans la plage autorisée que j'ai configurée dans mes paramètres personnalisés.
Je peux penser à quelques moyens rapides et sales pour y parvenir, comme mettre le chèque Layout
et envelopper une condition autour de toutes mes zones ou mettre en œuvre IThemeSelector
pour passer à un autre thème, mais je voudrais le faire correctement.
Cela a répondu à ma question sur l'endroit où mettre un tel code. Toutefois, j'ai maintenant le problème que je ne peux pas rediriger dans la méthode 'OnResultExecuting' si ma vérification échoue parce que" Impossible de rediriger après que les en-têtes HTTP ont déjà été définis ". Une idée s'il y a un moyen de contourner cela? – Lawyerson
Désolé, c'est mon erreur, s'il vous plaît voir la réponse mise à jour, devrait utiliser 'IActionFilter' plutôt que 'IResultFilter' pour attraper la demande avant de traiter l'action elle-même. – mdameer
Cheers, tout ce que je voulais savoir et plus encore! – Lawyerson