/ / OAuthWebSecurity Formsauthentication no es borrar las sesiones mvc4 - asp.net-mvc-4, session, google-oauth

OAuthWebSecurity Formsauthentication no es borrar las sesiones mvc4 - asp.net-mvc-4, session, google-oauth

La nuestra es una aplicación MVC4. Somos OAuth y Formsauthentication para permitir el inicio de sesión con google, facebook y twitter.

Por primera vez cuando inicio sesión usando google ... Me redirigieron a la página de Google y proporcioné las credenciales en las que me conecté, eso está bien.

Después de cerrar sesión y volver a iniciar sesión, puedo iniciar sesión automáticamente. Creo que las cookies en el navegador no están borradas, aunque las he borrado al cerrar la sesión.

    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);
}

Después de cerrar la sesión, debería volver a ser redirigido a la página de Google al volver a iniciar sesión. Pero no está sucediendo. alguien por favor aconsejar?

mismo tipo de pregunta aquí: La sesión ASPXAUTH se invalida al cerrar sesión con OAUTH

¡¡pero sin respuesta!!

Respuestas

2 para la respuesta № 1

A primera vista, no parece haber ningunaproblema en su pregunta descrita Su solución parece estar funcionando bien. Me parece que no está entendiendo cómo encajan por completo OAuth, FormsAuthenticate, Sessions y Cookies. En aras de la simplicidad, describiré el flujo del proceso que ha descrito y explicaré cada uno de ellos ...

El escenario es que NO ha iniciado sesión ni en su sitio web ni en su cuenta de google.

  1. Usted navega a la página de inicio de sesión de su sitio web.
  2. Haga clic en el botón "Iniciar sesión con Google": Esto lo redirecciona al cuadro de diálogo de inicio de sesión de la cuenta de Google, por lo que ya no está en su sitio web ... ahora está llamando a la puerta de Google.
  3. Inicia sesión con éxito con Google: Google emitirá una cookie (solo para los servicios de Google)

Hasta este punto, su navegador posee una cookie ... la de Google.

4. Se le redirige a su sitio web: su sitio web notó un token de acceso (no cookie) emitido por Google y luego su sitio web emitirá su propia cookie que no tiene nada que ver con la de Google.

Hasta este momento, ha iniciado sesión con Google y su sitio web, lo que significa que su navegador posee 2 cookies válidas (Google y su sitio web)

5.Más adelante, saldrá de su sitio web: esta acción destruye cualquier sesión relacionada con SU sitio web (incluida la cookie de su sitio web). Tenga en cuenta que la cookie de Google sigue siendo válida; de hecho, si va a su cuenta de gmail, youtube o cualquier otro servicio de Google, omitirá la autenticación porque no ha salido de Google ... SOLO desde su sitio web. .

6.Luego decide volver a iniciar sesión en su sitio web haciendo clic en el botón "Iniciar sesión con Google": esta acción lo llevará a Google, pero, debido a que Google detecta que ya está autenticado (conectado), no es necesario volver a autenticarse, ya sabe quién es y no muestra el cuadro de diálogo de inicio de sesión, sino que lo redirige a su sitio web emitiendo un nuevo token de acceso.

Básicamente, no es necesario que vuelvas a iniciar sesión en Google si ya has iniciado sesión

Espero que tenga sentido