2010-10-19 5 views
0

Dans un scénario maître/détail, j'utilise un Edit ActionLink qui récupère la vue des détails partiels via un appel jQuery Ajax; assez typique, non?ASP.NET MVC 2 - éviter le paramètre returnUrl étant défini par Ajax ActionLink de vue partielle

Le problème que j'ai rencontré est quand le jeton d'authentification d'un utilisateur expire et il clique sur le lien d'action d'édition. Le paramètre returnUrl de l'action LogOn est défini par le lien ActionLink qui renvoie la vue partielle et, en cas d'authentification réussie, un grand écran blanc avec uniquement la vue partielle est affiché.

Cela s'applique en réalité à l'un des nombreux liens d'action Ajax qui renvoient des vues partielles - à chaque fois que l'un d'eux déclenche une redirection vers l'action LogOn en raison d'un ticket d'authentification expiré.

 [HttpPost] 
     public ActionResult LogOn(LogOnModel model, string returnUrl) 
     { 
      if (ModelState.IsValid) 
      { 
       if (MembershipService.ValidateUser(model.UserName, model.Password)) 
       { 
        FormsService.SignIn(model.UserName, model.RememberMe); 
        if (!String.IsNullOrEmpty(returnUrl)) 
        { 
         return Redirect(returnUrl); 
        } 
        ..... 

Bien sûr, le return Redirect(returnUrl); est le problème ici. Je me demande comment d'autres personnes traitent ce scénario.

Merci.

Répondre

0

J'utilise le jQuery Idle Timout pour ce scénario. Je retourne juste un écran de connexion, dans une vue partielle, quand l'utilisateur est déconnecté. Réglez simplement la valeur du délai d'attente sur la même valeur que l'heure de déconnexion de la session.

+0

Oooo semble prometteur. Je vais jeter un coup d'oeil tout de suite. – asfsadf

+0

Savez-vous si les problèmes soulevés dans les commentaires ont été résolus? Avez-vous eu besoin de modifier le plugin? – asfsadf

+0

Je n'ai pas lu les commentaires pour voir exactement quels étaient les problèmes. Je n'utilise pas vraiment toutes les fonctionnalités, comme l'interrogation pour voir si la session est active. Dans un scénario de base, il semble fonctionner très bien car j'en ai besoin. – Victor

Questions connexes