2009-04-24 5 views
1

Je construis une application ASP.NET MVC en utilisant la version 1.0 en utilisant Visual Web Developer Express (temporairement). J'utilise le fournisseur SqlMembership et l'authentification par formulaire pour gérer la sécurité du site. La sécurité de mon site nécessite que l'utilisateur se connecte avant de voir quoi que ce soit - il n'y a pas de pages d'utilisateurs anonymes à l'exception de la page de connexion elle-même.L'utilisateur authentifié ASP.NET MVC est dirigé vers une mauvaise route après la connexion

J'ai changé changé les routes dans mes Global.asax.cs comme suit:

routes.MapRoute(
     "Default",            // Route name 
     "{controller}/{action}/{id}",       // URL with parameters 
     new { controller = "Patients", action = "Search", id = "" } // Parameter defaults 
    ); 

Je publié l'application sur mon IIS local (Windows XP) et cliquez sur le répertoire virtuel comme ceci: http://mymachinename/App/. Je suis dirigé vers la page de connexion (compte/connexion) comme prévu. Cependant, après m'être connecté avec succès à l'aide d'un nouveau compte d'utilisateur, je suis redirigé vers Accueil/Index plutôt que Patients/Recherche. Le contrôleur principal et la vue Index existent toujours dans l'application, car je ne les ai pas encore supprimés (nous pouvons décider d'afficher une page d'accueil en tant que première page de l'application). Je suis sur le point de retirer le contrôleur Home et les vues associées du projet, puisque j'ai essayé un certain nombre d'autres choses, y compris une nouvelle publication à partir de zéro, le redémarrage du serveur web et la suppression du cache de mon navigateur. Mais je suis curieux de savoir pourquoi cela pourrait se produire puisque je ne trouve aucune autre référence à Home/Index dans aucun de mes fichiers de projet, y compris global.asax.cs et web.config. Quelqu'un a des idées?

Merci.

+0

Combien de routes avez-vous dans le fichier Global.asax.cs? – rguerreiro

Répondre

0

Y a-t-il une chance que Home/Index soit défini comme defaultUrl dans web.config?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" 
     defaultUrl="~/Home/Index" /> 
</authentication> 
+0

Merci, cagdas, tu m'as mis sur le bon chemin. Bien que defaultUrl n'ait pas été spécifié, l'action de déconnexion du contrôleur de compte générée lors de la création du projet contenait une RedirectToAction ("Index", "Accueil"). Je dois avoir essayé de me connecter en tant que nouvel utilisateur après m'être connecté en tant qu'administrateur et en utilisant l'application pour créer l'utilisateur via mon interface d'administration, puis en me déconnectant. Ainsi, l'écran de connexion a été configuré pour rediriger vers/Home/Index. Je n'ai pas pensé à vérifier le contrôleur. Merci! –

+0

Ah oui, j'aurais aussi dû suggérer de vérifier le contrôleur. Je suis content que tu l'aies compris. –

Questions connexes