2011-10-07 4 views
0

J'ai le code ci-dessous pour la déconnexion. quand il se déconnecte, mais quand le dos est pressé, il ne devrait pas aller à la page précédemment visitée, mais il le fait.La déconnexion dans C# ne fonctionne pas

// Une fois la connexion

if (txtPassword.Text == password) 
       { 
        Session["Login"] = true; 
        Response.Redirect("AdminControlPanel.aspx"); 
       } 

// lorsque fermeture de session

Session["Login"] = false; 
      Session.Abandon(); 
      FormsAuthentication.SignOut(); 
      Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      Response.Cache.SetAllowResponseInBrowserHistory(false); 
      Response.Redirect("~/index.aspx"); 

// vérification sur adminpanel.aspx

if (!this.Page.IsPostBack) 
      { 
       if (this.Session["Login"]==null || (bool)this.Session["Login"]==false) 
       { 
        base.Response.Redirect("~/index.aspx"); 
       } 
      } 

ce qui ne va pas avec cela?

+0

Mettez un point d'arrêt sur et vérifier la valeur de la session [ "Connexion"]. –

+0

duplicata possible? http://stackoverflow.com/questions/2686946/asp-net-authentication-login-and-logout-with-browser-back-button –

+0

Il n'y a aucun moyen de contrôler la façon dont le navigateur, tous les intermédiaires entre et ainsi de suite loin gère un utilisateur en appuyant sur "retour". C'est probablement pourquoi tant de pages de déconnexion demande à l'utilisateur de fermer ensuite la fenêtre du navigateur. Le contrôle du cache peut être ou ne pas être correctement respecté par un nombre quelconque d'intermédiaires de la chaîne, tant que les données ont déjà été vues dans le navigateur, elles sont potentiellement dans une ou plusieurs caches en cours de route et peuvent être ressuscitées. –

Répondre

3

Essayez de définir Cache-Control.

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetAllowResponseInBrowserHistory(false); 
0

Peut-être il peut y avoir problème lorsque vous assigner la valeur à la variable session

mis en if (txtPassword.Text == password) un point de rupture et vérifiez ce qui se passe.

également

if (!this.Page.IsPostBack) 
      {    
      if (!string.IsNullOrEmpty((string) Session["Login"])) 
      { 
        var result = Convert.ToBoolean(Session["Login"]); //put a break point there also and check what values it getting 
       } 


      } 
+0

son ne fonctionne pas avec "" – Heena

+0

pourriez-vous mettre votre code où vous attribuez les valeurs à la session –

+0

Mis à jour la question – Heena

Questions connexes