2009-06-15 2 views
2

Nous utilisons MVC sur IIS6. Notre site est actuellement en cours d'ouverture, mais nous devons restreindre l'accès à la partie registre du site, mais permettre à ceux qui peuvent s'inscrire (à partir de nos bureaux) de se connecter et d'utiliser le site entièrement.ASP.NET MVC en utilisant IIS6: Bloquer l'accès à la vue unique (registre)

Ainsi, au bureau, vous pouvez accéder au registre et à tous les autres sites. Les bureaux externes ne peuvent pas accéder au registre et peuvent accéder à tous les autres sites.

Initialement, nous avons mis des restrictions de fichiers pour les adresses IP de nos bureaux sur le fichier register.aspx dans le dossier views \ accounts. Nous étions à peu près sûrs que cela fonctionnait, mais aujourd'hui, nous découvrons que ce n'est pas le cas! Quelle pensée à ce sujet a vraiment du sens!

Est-ce possible?

Nous devons avoir les autres pages aspx dans le dossier views \ accounts utilisables en tant que vues tout en ne bloquant que l'affichage du registre.

Espérons que cela a du sens!

Neil

Répondre

2

urls définies avec ASP.NET MVC sont configurables et non en fonction du dossier ou un fichier où la page de vue réside. Cela signifie que vous ne pouvez pas utiliser IIS pour configurer l'accès pour ces pages d'affichage. Vous pouvez filtrer l'accès aux contrôleurs (et donc indirectement aux pages d'affichage appelées par les pages d'affichage). Ceci est fait avec Action Filtering. Sur comment créer un filtre d'action personnalisé see this page.

Alors oui, il est possible de limiter l'accès à certaines pages en fonction de l'adresse IP.

+0

comment? Avez-vous un exemple, je veux restreindre quelques pages d'affichage en fonction de l'adresse IP – Miral

1

J'ai déjà rencontré ce genre de situation, mais le problème a été résolu par la façon dont nous écrivons les applications.

Chaque fois que nous avons eu une application avec "certaines informations affichées" et "un moyen d'administrer les données", nous avons toujours créé des projets d'interface utilisateur distincts au dessus de la logique métier. Ce n'est pas seulement pour faciliter la maintenabilité, cela signifie également que le bit public peut être déployé sur un site Web public, tandis que le bit d'administration peut être accédé sur le réseau - il n'y a donc aucun accès externe. Dans votre exemple, l'extraction des deux éléments logiques signifie que vous pouvez déployer deux projets Web distincts avec des règles d'accès différentes dans IIS.

Une autre option serait de vérifier l'adresse IP dans le code exécuté pour la page restreinte - les adresses IP peuvent être usurpées, ce n'est donc pas une solution complètement sécurisée.