9
votes

ASP.NET Response.redirect avec jQuery Mobile - Hatahing URL

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:
http: // localhost: 56644 / register.aspx? returnurl =% 2fdefault.aspx% 3fbla% 3dtest & bla = test # registre.aspx? returnl =% 2fdefault.aspx% 3fbla% 3DTest & bla = test strong> P>

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>

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"]);

    }
}


1 commentaires

Voir Stackoverflow.com/Questtions/6697959/...


3 Réponses :


0
votes
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);

    }
}

1 commentaires

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.



2
votes

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 data-url code> de la balise de formulaire de connexion. En d'autres termes, en MVC 4: P>

  1. Je crée une copie du logon.csthml comme logon.mobile.cshtml li>
  2. dans logon.mobile.cshtml i Ajouter les éléments suivants: : 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})) 
    


0 commentaires

0
votes

jQuery mobile est conçu pour avoir une seule page et utiliser #page pour charger via Ajax la page que vous souhaitez accéder.

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.

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.


0 commentaires