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");
}
...
Avez-vous du code que vous pouvez publier? Cela pourrait aider. – griegs
Aussi, à quelle page êtes-vous dirigé? Je soupçonne le/Home/Index, mais pourriez-vous s'il vous plaît confirmer. – griegs
Je suis en effet redirigé vers/Home/Index. – ripper234