2017-05-10 1 views
0

Je crée une application web mvc5 e-commerce. J'ai une action "ListItem" où les utilisateurs peuvent lister les articles à vendre. J'ai créé un attribut d'autorisation personnalisé qui vérifie si l'utilisateur est dans le rôle de vendeur et redirige l'utilisateur vers une action de configuration où l'utilisateur peut s'inscrire auprès de la société Name et taxId etc. pour être ajouté au rôle de vendeur. Maintenant que l'utilisateur s'est enregistré (et a été ajouté au rôle de vendeur), je veux rediriger l'utilisateur vers l'action "listItem" (où l'utilisateur peut continuer et lister son article) en passant un "return url" à " ". Je ne suis pas sûr de savoir comment cela est réalisé (je suis assez nouveau à asp.net mvc) Quelqu'un peut-il m'aider s'il vous plaît? Merci.Comment passer manuellement une URL de retour à l'action asp.net mvc5

Répondre

0

Lors de la redirection à l'action Setup, ajouter un returnUrl à l'échec d'autorisation données de route.

Par exemple redéfinissant la HandleUnauthorizedRequest dans AuthorizeAttribute:

public sealed class CompanyMustBeRegisteredAttribute : AuthorizeAttribute 
{ 
    public override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    { 
     // or filterContext.HttpContext.Request.RawUrl 
     var returnUrl = filterContext.HttpContext.Request.Url.ToString(); 
     filterContext.Result = 
      new RedirectToActionResult("Setup", "SetupController", new { returnUrl }); 
    } 
} 
+0

Merci un million! Vous avez sauvé la journée. ce qui a fonctionné était le "Request.RawUrl". Pour une raison quelconque, le "Request.Url.ToString" n'a pas fonctionné pour moi. Merci encore. – abe

0

Maintenant, je veux rediriger l'utilisateur vers l'action listItem

Alors pourquoi ne pas utiliser la méthode RedirectToAction() comme

return RedirectToAction(action, controller); 
+0

Parce que je suis sur la planification en utilisant l'action d'installation sur d'autres actions qui exige que l'utilisateur doit être un vendeur. – abe