Comment vider la session lors de la déconnexion

Je redirige l’utilisateur vers la page de connexion lorsque l’utilisateur clique sur la déconnexion, mais je ne pense pas qu’il efface une application ou une session car toutes les données ont persisté lorsque l’utilisateur se reconnecte.

Actuellement, la page de connexion a un contrôle de connexion et le code derrière la page est uniquement connecté à l’authentification de connexion.

Est-ce que quelqu’un peut me diriger vers un bon tutoriel ou un article sur la gestion de la connexion et de la sortie des sites Web ASP.NET?

J’utilise ensuite pour effacer la session et effacer aspnet_sessionID :

 HttpContext.Current.Session.Clear(); HttpContext.Current.Session.Abandon(); HttpContext.Current.Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 

Je préférerais Session.Abandon()

Session.Clear() ne provoquera pas de fin de tir et d’autres demandes du client ne déclencheront pas l’événement Session Start.

Session.Abandon() détruit la session et l’événement Session_OnEnd est déclenché.

Session.Clear() supprime simplement toutes les valeurs (contenu) de l’object. La session with the same key est toujours alive .

Donc, si vous utilisez Session.Abandon() , vous perdez cette session spécifique et l’utilisateur obtiendra une new session key . Vous pouvez l’utiliser par exemple lorsque l’utilisateur se logs out .

Utilisez Session.Clear() , si vous souhaitez que l’utilisateur rest dans la même session (si vous ne voulez pas qu’il se reconnecte par exemple) et réinitialisez toutes ses données spécifiques à la session.

Allez dans le fichier Global.asax.cs de votre projet et ajoutez le code suivant.

  protected void Application_BeginRequest() { Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetExpires(DateTime.Now.AddHours(-1)); Response.Cache.SetNoStore(); } 

Cela a fonctionné pour moi ..! Lien de référence Clear session on Logout MVC 4

    asp.net session Clear example: how to clear the current session data (remove all the session items)   

asp.net session example: Session Clear

Session.Clear ();

La manière d’effacer la session est un peu différente pour le kernel .NET. Il n’y a pas de fonction Abandon() .

ASP.NET Core 1.0 ou version ultérieure

 //Removes all ensortinges from the current session, if any. The session cookie is not removed. HttpContext.Session.Clear() 

Voir api référence ici

.NET Framework 4.5 ou version ultérieure

 //Removes all keys and values from the session-state collection. HttpContext.Current.Session.Clear(); //Cancels the current session. HttpContext.Current.Session.Abandon(); 

Voir api référence ici

session.abandon () ne supprime pas le cookie sessionID du navigateur. Par conséquent, toute nouvelle demande après cela prendra le même identifiant de session. Par conséquent, utilisez Response.Cookies.Add (new HttpCookie (“ASP.NET_SessionId”, “”)); après session.abandon ().