/ / OAuthWebSecurity Formsauthentication löscht keine Sitzungen mvc4 - asp.net-mvc-4, session, google-oauth

OAuthWebSecurity Formsauthentication löscht Sitzungen nicht mvc4 - asp.net-mvc-4, Sitzung, google-oauth

Unsere ist eine MVC4-Anwendung. Wir sind OAuth & Formsauthentication, um das Login mit Google, Facebook & Twitter zu ermöglichen.

Zum ersten Mal, wenn ich mich mit google anmelde .. Ich werde zur Google-Seite weitergeleitet und habe Anmeldeinformationen angegeben, bei denen ich angemeldet bin. Das ist in Ordnung.

Nach dem Abmelden und erneutem Anmelden kann ich mich automatisch anmelden. Ich denke, die Cookies im Browser werden nicht gelöscht, obwohl ich sie beim Abmelden gelöscht habe.

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

Nach dem Abmelden sollte ich beim erneuten Anmelden erneut auf die Google-Seite geleitet werden. aber es passiert nicht. jemand pls beraten?

Gleiche Frage hier: ASPXAUTH-Sitzung wird beim Abmelden mit OAUTH ungültig

aber keine Antwort!!

Antworten:

2 für die Antwort № 1

Auf den ersten Blick scheint es keine zu gebenProblem in Ihrer beschriebenen Frage. Ihre Lösung scheint gut zu funktionieren. Es scheint mir, dass Sie nicht verstehen, wie OAuth, FormsAuthenticate, Sessions und Cookies zusammenpassen. Der Einfachheit halber werde ich den Prozessablauf beschreiben, den Sie beschrieben haben, und jeden einzelnen erläutern ...

Das Szenario ist, dass Sie weder auf Ihrer Website noch in Ihrem Google-Konto angemeldet sind.

  1. Sie navigieren zu Ihrer Website-Anmeldeseite
  2. Klicken Sie auf die Schaltfläche "Mit Google anmelden": Dadurch werden Sie zum Anmeldedialogfeld des Google-Kontos weitergeleitet, sodass Sie nicht mehr auf Ihrer Website sind
  3. Sie melden sich erfolgreich bei Google an: Google gibt ein Cookie aus (nur für Google-Dienste)

Bis zu diesem Zeitpunkt besitzt Ihr Browser ein Cookie ... das von Google

4.Sie werden zu Ihrer Website zurückgeleitet: Ihre Website hat ein von Google ausgegebenes Zugriffstoken (kein Cookie) erkannt, und dann wird Ihre Website ein eigenes Cookie ausgeben, das nichts mit dem von Google zu tun hat

Bis zu diesem Zeitpunkt sind Sie bei Google und Ihrer Website angemeldet, was bedeutet, dass Ihr Browser zwei gültige Cookies (Google und Ihre Websites) besitzt.

5Später melden Sie sich von Ihrer Website ab: Diese Aktion zerstört alle Sitzungen, die sich auf Ihre Website beziehen (einschließlich des Cookies für Ihre Website). Beachten Sie, dass das Cookie von Google immer noch gültig ist. Wenn Sie zu Google Mail, Youtube oder einem anderen Service von Google gehen, werden Sie die Authentifizierung vollkommen umgehen, da Sie sich nicht von Google abmelden ... NUR von Ihrer Website .

6Dann entscheiden Sie sich für eine erneute Anmeldung bei Ihrer Website, indem Sie auf die Schaltfläche "Mit Google anmelden" klicken: Diese Aktion führt Sie zu Google. Da Google jedoch erkennt, dass Sie bereits authentifiziert (angemeldet) sind, muss es nicht erneut authentifizieren Sie sich, es weiß bereits, wer Sie sind, und fordert den Anmeldedialog nicht auf, sondern leitet Sie zu Ihrer Website zurück und gibt ein neues, neues Zugriffstoken aus.

Grundsätzlich müssen Sie sich nicht erneut bei Google anmelden, wenn Sie bereits angemeldet sind

Hoffe es macht Sinn