Question

Je redirige l'utilisateur vers la page de connexion lorsque l'utilisateur clique sur 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 s'est reconnecté.

Actuellement, la page de connexion a un contrôle de connexion et le code en arrière de la page est uniquement câblé avec la connexion Authentifier.

Quelqu'un peut-il me diriger vers un bon tutoriel ou un article sur la gestion de la connexion depuis et vers les sites Web ASP.NET?

Était-ce utile?

Autres conseils

J'utilise ce qui suit 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 () n'entraînera pas le déclenchement de End et les autres demandes du client ne déclencheront pas l'événement de début de session.

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'objet. La session avec la même clé est toujours en vie .

Ainsi, si vous utilisez Session.Abandon () , vous perdez cette session spécifique et l'utilisateur obtiendra une nouvelle clé de session . Vous pouvez l'utiliser par exemple lorsque l'utilisateur se déconnecte .

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

Accédez au 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   Effacer la session lors de la déconnexion de MVC 4

<script runat="server">  
    protected void Page_Load(object sender, System.EventArgs e) {  
        Session["FavoriteSoftware"] = "Adobe ColdFusion";  
        Label1.Text = "Session read...<br />";  
        Label1.Text += "Favorite Software : " + Session["FavoriteSoftware"];  
        Label1.Text += "<br />SessionID : " + Session.SessionID;  
        Label1.Text += "<br> Now clear the current session data.";  
        Session.Clear();  
        Label1.Text += "<br /><br />SessionID : " + Session.SessionID;  
        Label1.Text += "<br />Favorite Software[after clear]: " + Session["FavoriteSoftware"];  
    }  
</script>  



<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <title>asp.net session Clear example: how to clear the current session data (remove all the session items)</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <h2 style="color:Teal">asp.net session example: Session Clear</h2>  
        <asp:Label   
            ID="Label1"   
            runat="server"   
            Font-Size="Large"  
            ForeColor="DarkMagenta"  
            >  
        </asp:Label>  
    </div>  
    </form>  
</body>  
</html>  

La manière de vider la session est un peu différente pour le noyau .NET. Il n'y a pas de fonction Abandon () .

ASP.NET Core 1.0 ou version ultérieure

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

Voir Référence de l'API 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 la référence api ici

Session.Clear ();

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top