2010-10-21 9 views
0

Nous avons une application qui doit actuellement être accessible en utilisant deux schémas d'authentification, Forms Auth et Active Directory ou NTLM/Windows Auth.Un ensemble de code, deux schémas d'authentification Formulaires Auth + Windows Auth: Le moindre des maux

La façon dont l'application est maintenant, il y a deux sites IIS pointant vers des dossiers différents avec le même ensemble de fichiers, tout identique à l'exception du web.config. Avant que quelqu'un me flambe, c'était une application héritée, mais néanmoins je suis maintenant responsable de. Nous avons l'occasion de faire un refactoring et j'essaie de trouver la meilleure façon de procéder.

Supposons que les exigences relatives à l'authentification NTLM directe pour l'application soient remplies. Vous devez être en mesure d'accéder à l'application avec une invite AD intégrée, permettant aux employés du réseau interne d'accéder au site sans se connecter manuellement du tout.

Supposons maintenant que la même application doit également être accessible à partir d'utilisateurs externes à l'organisation. Utilisation de l'authentification par formulaire et du fournisseur d'appartenance Quelle est la manière la moins horrible de configurer cette application?

Est-il possible de configurer IIS pour utiliser un fichier nommé autre chose que web.config pour son fichier de configuration? Cela pourrait étouffer cela dans l'œuf juste là. Dans le contrôle des sources, je pense que le chemin à suivre est d'avoir tous les fichiers source dans un projet, un projet 'partagé', et d'utiliser les événements de temps de génération pour se copier dans les deux projets des projets consommateurs. Ensuite, nous pouvons continuer à déployer l'application dans deux dossiers différents, mais au moins dans le contrôle des sources, les fichiers source communs existeront dans un seul endroit. L'inconvénient de ceci est que nous perdrions la compilation dynamique, ce qui est vraiment nul. Mais mieux que cela, alors une tonne de duplication. J'ai fait quelques expérimentations avec le routage mais il semble que vous ne puissiez pas router vers un fichier en dehors de la racine de l'application, ce qui devrait être différent pour définir les différents schémas d'authentification, donc je ne pense pas que ce serait le cas. travail.

Toutes les pensées, commentaires ou idées sont très appréciés,

bd

Répondre

3

Vous pouvez essayer un site web avec type d'authentification en mode mixte. Cochez cette case: http://www.pluralsight-training.net/community/blogs/craig/archive/2004/07/24/1699.aspx.

L'idée est d'avoir une authentification par formulaires dans la configuration ASP.NET et d'avoir un accès anonyme ainsi qu'une authentification Windows marquée dans IIS. Ainsi, chaque fois que le serveur envoie un 401, le navigateur fournira les informations d'identification de Windows sinon le formulaire de connexion sera affiché. L'auteur de l'article a fourni une case à cocher sur le formulaire de connexion qui émettrait 401 pour obtenir les informations d'identification Windows, puis les utiliser pour émettre le ticket d'authentification. Une autre variante (du point de vue de l'expérience utilisateur) consiste à avoir une page par défaut qui demandera une authentification Windows intégrée dans IIS (pas d'accès anonyme). Les utilisateurs internes peuvent visiter le site et s'authentifier via cette page par défaut, puis la page par défaut redirigera vers la page principale/d'accueil de l'application. Les utilisateurs externes sont invités à utiliser la page de connexion qui authentifie les formulaires, puis rediriger vers la page principale.

+0

Doux Je pense que ça va marcher pour moi merci. – BrooklynDev