Une configuration de routage ou IIS particulière est-elle nécessaire lorsqu'une action de contrôleur utilise la même URL qu'un répertoire virtuel?Action ASP.NET MVC et répertoire virtuel avec le même chemin
J'ai une application ASP.NET MVC 1.0 qui nécessite l'authentification Windows appliquée à une seule action ("/ Login/FromWindows"). Pour ce faire, nous avons configuré un répertoire virtuel avec le même chemin que l'action (par exemple "/ Login/FromWindows") et activé l'authentification Windows dans IIS. Lorsque je visite l'URL/Login/FromWindows, je reçois une réponse HTTP 200 vide et rien n'est consigné dans le journal de texte du serveur. L'action "FromWindows" devrait consigner les messages et rediriger l'utilisateur vers la page d'accueil.
Il semble que le code d'action ne soit simplement pas exécuté, donc il y a peut-être un conflit avec le répertoire virtuel.
config Route dans Global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
// snipped: ignored routes for images, scripts, etc.
routes.MapRoute("Default", "{controller}/{action}",
new { controller = "Home", action = "Index" });
}
Nous voulions utiliser des répertoires virtuels pour permettre le blocage des requêtes externes vers cette URL. Seuls les utilisateurs Windows internes du domaine pourront utiliser cette page, et nous ne voulons pas rendre nos serveurs vulnérables aux trous de l'authentification Windows. Pour être honnête, je ne sais pas pourquoi nous avons besoin de répertoires virtuels pour cela. Je suis en train de discuter avec nos serveurs pour trouver une meilleure solution. – MikeWyatt
Oui, vous pouvez accomplir tout ce que vous venez de dire sans répertoires virtuels. Il n'y a pas de faille dans l'authentification des fenêtres si vous le faites de la bonne manière, mais faire un hybride comme vous êtes en ce moment ne fait que mendier des ennuis. Éliminez ces répertoires virtuels et appliquez les attributs d'authentification sur vos contrôleurs et/ou méthodes d'action correspondants. Ensuite, laissez simplement web.config s'inquiéter de la façon d'authentifier les utilisateurs. – Chev
Nous avons besoin d'une forme de fichier ou de répertoire pour activer/désactiver les schémas d'authentification dans IIS, car notre équipe de serveurs ne veut pas autoriser les développeurs à activer/désactiver les schémas d'authentification dans le fichier web.config. J'écris actuellement un fichier ASPX qui exécute la logique qui était précédemment dans l'action. Le fichier ASPX sera alors configuré pour requérir l'authentification Windows, et une règle sera ajoutée à notre pare-feu pour bloquer l'accès externe à celui-ci. Ce n'est pas parfait, mais ça devrait marcher. – MikeWyatt