J'ai une application Standard Forms Forms ASP.NET. Mon page d'enregistrement et de connexion se trouve dans le même fichier .aspx avec 2 pages mobiles JQuery. Si je publie ma page ASP.NET, telle que l'utilisateur ne parvient pas à vous connecter correctement ... etc. L'URL hachage commence à se stabiliser à elle-même.
exemple URL: Une fois que mon utilisateur est authentifié, je souhaite rediriger vers la version retour sans toutes les informations de hachage ou trouver un moyen de rester pour que l'URL reste pendant les post-retours? p> Marquage: strong> P>
http: // localhost: 56644 / register.aspx? returnurl =% 2fdefault.aspx% 3fbla% 3dtest & bla = test # registre.aspx? returnl =% 2fdefault.aspx% 3fbla% 3DTest & bla = test strong> P> protected void btnLogin_Click(object sender, EventArgs e)
{
if (LoggedIn)
{
FormsAuthentication.SetAuthCookie("blabla", true);
//Note: Request.QueryString["ReturnUrl"] = "/Default.aspx?bla=test";
Response.Redirect(Request.QueryString["ReturnUrl"]);
}
}
3 Réponses :
protected void btnLogin_Click(object sender, EventArgs e) { if (LoggedIn) { FormsAuthentication.SetAuthCookie("blabla", true); //Note: Request.QueryString["ReturnUrl"] = "/Default.aspx?bla=test"; // This will get only the first instance of ReturnUrl var url = Request.Url.PathAndQuery.Substring( Request.Url.PathAndQuery.IndexOf("ReturnUrl=") + ("ReturnUrl=").Length); Response.Redirect(url); } }
Consultez mon commentaire dans le code, l'URL est toujours correcte, le cadre mobile JQuery modifie l'URL du navigateur comme indiqué dans la question.
Ceci est un ancien poste, mais ayant connu le même problème, je posterai la solution que j'ai travaillé - c'est un peu rude, mais cela peut aider quelqu'un ou être amélioré. De plus, il est dans ASP.NET MVC 4 - Je ne sais pas comment migrer le même code sur ASPX
Ce que je fais essentiellement est de capturer l'URL de RedirectTo et de l'utiliser pour fournir en tant qu'attribute dans logon.mobile.cshtml i Ajouter les éléments suivants:
: p>
data-url code> de la balise de formulaire de connexion.
En d'autres termes, en MVC 4: P>
@{
string landPage = Request.Url.Query.Length>11?
Request.Url.Query.Substring(11):"";//very rough, to be improved.
// Here I am clipping the RedirectTo prefix of the Query
}
//replaces the boilerplate @using (Html.BeginForm())
@using (Html.BeginForm("LogOn", "Account", FormMethod.Post,
new { @data_url = landPage}))
jQuery mobile est conçu pour avoir une seule page et utiliser #page pour charger via Ajax la page que vous souhaitez accéder. p>
D'après ce que je peux voir qu'il tente d'appuyer sa méthode d'indiquer la page nôtre donc le # register.aspx son ajoutant à la fin. P>
Ma solution à ce problème était d'utiliser UserControls pour les différentes sections mobiles de mon site et j'ai utilisé Ajax pour tout ce qui aurait été un post-pack. P>
Voir Stackoverflow.com/Questtions/6697959/...