2009-05-26 5 views
0

J'ai publié mon projet MVC sur un serveur IIS 6. Courir sous l'application MVCapp. Le projet Web obtient l'URL: www.domain.com/MVCapp/. J'utilise les formulaires de connexion pour l'authentification et j'ai un problème après la publication.MVC redirige les utilisateurs autorisés vers une URL incorrecte après l'expiration du délai

Le web.config est la suivante:

<authentication mode="Forms"> 
<forms name="CTWebCookie" loginUrl="~/Account/Login" defaultUrl="~/Home/Index" slidingExpiration="true" protection="All" timeout="20"/> 
</authentication> 

Par exemple, si je lance le code suivant dans une action:

FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 

..everything fonctionne très bien et l'utilisateur est redirigé vers www .domain.com/MVCapp/Compte/Connexion. Toutefois, lorsque l'authentification a expiré, l'utilisateur sera redirigé vers www.domain.com/Account/Login à la prochaine demande de page. La racine de l'application n'est pas routée et l'URL pointe sur la racine IIS.

Comment puis-je faire en sorte que l'application résolve l'url correcte après expiration du délai d'autorisation et pourquoi cela fonctionne-t-il lors de la déconnexion programmée non quand elle se déconnecte automatiquement?

Veuillez nous consulter.

+0

Pourriez-vous fournir votre code Account.Login? –

+0

Désolé de demander des éclaircissements, mais vous dites que lorsque l'autorisation expire, vous êtes redirigé vers la racine du domaine (www.mydomain.com) au lieu de la page de connexion (www.mydomain.com/Account/Login), droite? Quelle est l'url "correcte" que vous voulez que l'utilisateur voit quand l'autorisation a expiré? – nkirkes

Répondre

0

Nevermind figured it (erreur stupide), merci pour l'aide si.

Le problème était un javascript sur la page de connexion qui rechargeait la page en tant que cible.top en cas de requêtes asynchrones. L'URL dans le javascript n'avait pas été résolue correctement.

0

Le modèle de projet ASP.NET MVC utilise ~/Account/Login. Vérifiez votre web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" ... /> 
</authentication> 

mise à jour:

Y at-il application à la racine IIS (de www.domain.com/)? Si oui, essayez de supprimer cette application d'IIS. Vous pouvez également ajouter cette ligne dans votre Site.master:

<%= System.Web.Security.FormsAuthentication.LoginUrl %> 

pour voir si votre loginUrl est exactement/MVCapp/compte/Connexion ou toute autre chose

Hope this helps

+0

Mes paramètres de configuration ne sont pas affichés. Désolé pour ça. J'ai modifié mon post maintenant et comme vous pouvez le voir, j'utilise la même URL que le modèle. –

Questions connexes