2017-09-15 1 views
1

Dans une application MVC, un utilisateur s'est connecté à Machine1. Le même utilisateur s'est connecté à Machine2 également. À ce moment-là, je voudrais Déconnecter l'utilisateur de Machine1 et voudrais effacer la session de Machine1. Comment y parvenir?Comment tuer la session d'un utilisateur

Nous vous serions reconnaissants de fournir un exemple d'application/code.

S'il vous plaît faire de l'aide. Merci d'avance. S'il vous plaît faire de l'aide. Merci d'avance. Session.Abandon() détruit la session et déclenche l'événement Session_OnEnd.

Répondre

0

Session.Clear() supprime simplement toutes les valeurs (contenu) de l'objet. La session avec la même clé est toujours en vie. Donc, si vous utilisez Session.Abandon(), vous perdez cette session spécifique et l'utilisateur recevra une nouvelle clé de session. Vous pouvez l'utiliser par exemple lorsque l'utilisateur se déconnecte. Utilisez Session.Clear() si vous voulez que l'utilisateur reste dans la même session (si vous ne voulez pas qu'il se reconnecte par exemple) et réinitialise toutes ses données spécifiques de session.

0

Pour obtenir les fonctionnalités souhaitées, je recommande d'enregistrer un SessionId CurrentDateTime et un UserId dans une table spéciale de la base de données, par exemple "LoginHistory". Puis, en global.asax dans le

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e); 

traction top 1 rangée commandée par DateTime de « LoginHistory » pour l'ID d'utilisateur actuel et comparer la valeur sessionId base de données avec sessionId de l'utilisateur actuel.

Si elles sont différentes puis déconnectez utilisateur actuel

FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 
0

utilisation dans votre action logout peut-il vous aider

Session.Clear(); 

ou bien

session["YourSessionKey"]=null; 
0

Voici quelques scénarios quand quelle méthode utilisera pour tuer la session.

Session.Remove(yoursession); -> Supprime un élément de la collection d'états de session.

Session.RemoveAll() -> Supprime tous les éléments de la collection de sessions.

Session.Clear() -> Supprimer tous les éléments de la collection de sessions. Remarque: Il n'y a pas de différence entre Clear et RemoveAll. RemoveAll() appelle Clear() en interne.

Session.Abandon() -> Annule la session en cours.

Selon vos besoins, cela mieux

FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 

méthode SignOut supprime à partir du cookie ou l'URL du ticket des formulaires d'authentification des informations si CookiesSupported est faux. Vous pouvez utiliser la méthode SignOut conjointement avec la méthode RedirectToLoginPage pour déconnecter un utilisateur et permettre à un utilisateur différent de se connecter.

Veuillez vous reporter à LINK