2010-01-05 6 views
1

J'atteins ma page de connexion avec le paramètre "returnUrl" défini sur l'URL sur laquelle je me trouvais. Ensuite, je me connecte via OpenID (DotNetOpenAuth), et appelez FormsAuthentication.RedirectFromLoginPage(). La connexion est réussie, mais je ne suis pas retourné à la page d'origine où j'étais. Je rencontre le même problème lors de la déconnexion - lorsque je me déconnecte, je ne reste pas sur la même page, même si le lien de déconnexion contient le bon paramètre "returnUrl".FormsAuthentication.RedirectFromLoginPage ne me renvoie pas l'URL orignal

Qu'est-ce que je fais mal?

Voici l'extrait de code. Je rentrais EmptyResult() après l'appel à RedirectFromLoginPage, parce que je ne sais pas vraiment quoi faire (voir this related question)

using (var relayingParty = new OpenIdRelyingParty()) 
{ 
    var response = relayingParty.GetResponse(); 

    if (response == null) 
    { 
     // Stage 2: user submitting Identifier 
     var openId = Request.Form["openId"]; 
     relayingParty.CreateRequest(openId).RedirectToProvider(); 

     throw new Exception("Never gets here"); 
    } 

    // Stage 3: OpenID Provider sending assertion response 
    switch (response.Status) 
    { 
     case AuthenticationStatus.Authenticated: 
      var claimedIdentifier = response.ClaimedIdentifier; 
      var user = _userRepository.FindByOpenId(claimedIdentifier); 
      if (user != null) 
      { 
       // login 
       FormsAuthentication.RedirectFromLoginPage(user.Id.ToString(), false); 
       return new EmptyResult(); 

       // TODO - https://stackoverflow.com/questions/1991710/understanding-redirections-in-asp-net-mvc 
       // throw new Exception("Should never get here"); 
      } 
     ... 
+0

Avez-vous du code que vous pouvez publier? Cela pourrait aider. – griegs

+0

Aussi, à quelle page êtes-vous dirigé? Je soupçonne le/Home/Index, mais pourriez-vous s'il vous plaît confirmer. – griegs

+0

Je suis en effet redirigé vers/Home/Index. – ripper234

Répondre

0

C'est un coup de feu dans l'obscurité, mais j'ai récemment connu quelques étrangetés avec connexion réoriente parce que l'utilisateur anonyme n'avait pas les droits sur mon dossier scripts. Cela a amené le redirecturl à pointer vers un script jquery parce que c'était la dernière adresse à laquelle l'utilisateur a tenté d'accéder sans succès.

+0

Je n'ai pas encore javascript dans mon site, et je n'ai aucune raison de suspecter un problème d'autorisation. Je rencontre cela dans le serveur Web intégré fourni avec Visual Studio (2010 beta 2). – ripper234

Questions connexes