/ / OAuthWebSecurity Formsauthentication n'efface pas les sessions mvc4 - asp.net-mvc-4, session, google-oauth

OAuthWebSecurity Formsauthentication n'efface pas les sessions mvc4 - asp.net-mvc-4, session, google-oauth

Notre application est une application MVC4. Nous sommes OAuth & Formsauthentication pour permettre la connexion avec Google, Facebook et Twitter.

Pour la première fois quand je me connecte avec google .. Je suis redirigé vers une page google et j’ai fourni les informations d’identification qui m’identifie, c’est très bien.

Après la déconnexion et la reconnexion, je peux me connecter automatiquement. Je pense que les cookies dans le navigateur ne sont pas effacés bien que je les ai effacés lors de la fermeture de session.

    public ActionResult LogOff()
{
//Clears out Session
Response.Cookies.Clear();

//Signs out of WebSecurity and FormsAuthentication
WebSecurity.Logout();
FormsAuthentication.SignOut();

// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);

Session.Clear();
Session.Abandon();

return RedirectToAction(AXN_DFLT, CNTLR_DFLT);
}

Après la fermeture de session, je devrais être redirigé vers la page Google lors de la nouvelle connexion. mais ça ne se passe pas. quelqu'un pls conseiller?

même genre de question ici: Session ASPXAUTH invalide à la déconnexion avec OAUTH

mais pas de réponse !!

Réponses:

2 pour la réponse № 1

À première vue, il ne semble pas y avoir deproblème dans votre question décrite. Votre solution semble bien fonctionner. Il me semble que vous ne comprenez pas à quel point OAuth, FormsAuthenticate, Sessions et Cookies conviennent parfaitement. Par souci de simplicité, je vais décrire le déroulement du processus que vous avez décrit et expliquer chacune d’elles ...

Le scénario est que vous n'êtes connecté ni à votre site ni à votre compte google.

  1. Vous accédez à la page de connexion de votre site Web
  2. Cliquez sur le bouton "Connexion avec Google": ceci vous redirige vers la boîte de dialogue de connexion au compte Google, de sorte que vous n'êtes plus sur votre site Web ... vous frappez maintenant à la porte de Google.
  3. Vous vous êtes connecté avec Google: Google émettra un cookie (pour les services de Google uniquement)

Jusqu’à présent, votre navigateur possède un cookie ... celui de Google.

4.Vous êtes redirigé vers votre site Web: votre site Web a remarqué un jeton d'accès (non un cookie) émis par Google. Votre site Web émettra alors son propre cookie, qui n'a rien à voir avec celui de Google.

Jusqu'à ce stade, votre connexion à Google et à votre site Web signifie que votre navigateur possède deux cookies valides (Google et votre site Web).

5Ensuite, vous vous déconnectez de votre site Web: Cette action détruit toute session liée à VOTRE site Web (y compris le cookie de votre site Web). Notez que le cookie de Google est toujours valide. En fait, si vous accédez à votre service de messagerie Gmail, YouTube ou à tout autre service de Google, vous éviterez parfaitement l’authentification car vous ne vous êtes pas déconnecté de Google ... SEULEMENT de votre site Web. .

6Ensuite, vous décidez de vous reconnecter à votre site Web en cliquant sur le bouton "Connexion avec Google": cette action vous mènera à Google, mais, comme Google détecte que vous êtes déjà authentifié (connecté), il n’est pas nécessaire de le rétablir. vous authentifie, il sait déjà qui vous êtes et ne demande pas la boîte de dialogue de connexion; il vous redirige plutôt vers votre site Web en émettant un nouveau nouveau jeton d'accès.

En règle générale, vous n'êtes pas obligé de vous connecter à nouveau à Google si vous êtes déjà connecté.

J'espère que c'est logique