J'ai actuellement un lien de connexion sur mon application qui ressemble à quelque chose comme ceci:
<a href="http://stackoverflow.com/login?ReturnUrl=" + <%= Request.RawUrl %>>Login</a>
Je veux gérer le POSTE de commande sur la page de connexion du contrôleur de l'action ci-dessous:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string returnUrl)
{
// Authenticate user
return Redirect(returnUrl);
}
Le problème ici est de savoir si la RawUrl est quelque chose avec de multiples paramètres d'url "somepage?param1=1¶m2=2¶m3=3", puis le returnUrl qui est passée dans l'action Login est tronqué après le premier esperluette: "somepage?param1=1".
J'ai essayé d'Encodage de la RawUrl mais qui semblent ne faire aucune différence. Il semble que l'ASP.NET framework MVC ici est UrlDecoding l'url params avant leur mise en correspondance du contrôleur paramètres de l'action, qui se dépouillant de l'ajout de paramètres d'url que je veux voir dans mon returnUrl paramètre.
Est-il un moyen de contourner cela? Je sais que je pouvais Demander.Chemin d'accès et d'analyser les valeurs dont j'ai besoin, mais je pensais que je voudrais voir s'il y avait un nettoyeur de la première approche.