Question

Je développe un site web asp.net et je ne suis pas en utilisant les contrôles d'authentification de asp.net encastrables. J'ai créé manuellement des tables pour les utilisateurs pour le site.

Ce que je veux est la suivante

  • Une fois connecté l'utilisateur peut accéder aux pages (qui est déjà fait)
  • Lorsque signe utilisateur presse sur (l'utilisateur va à la page spécifique - par exemple - default.aspx)
  • Maintenant, lorsque l'utilisateur appuie sur le bouton « retour » du navigateur, il ne faut pas aller à la page précédente (ce qui se fait dans les pages de Yahoo - Je veux mettre en œuvre le même)
Était-ce utile?

La solution

Pour empêcher les utilisateurs de voir la page précédente lorsque vous appuyez sur le bouton de retour, vous devez charger le navigateur pour ne pas mettre en cache cette page:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Vous pouvez mettre ce code dans toutes les pages authentifiées, les empêchant ainsi d'être mis en cache sur les navigateurs client.

Autres conseils

Pour une page à ne pas cacher le navigateur doit répondre de façon appropriée aux instructions de mise en cache, mais il n'y a aucune garantie que cela fonctionnera sur tous les navigateurs! (Une personne appropriée le mal pourrait écrire leur propre navigateur pour ignorer les informations de mise en cache, ou écrire un proxy pour dépouiller dehors ...)

Vous ne pouvez pas obtenir ce travail 100% du temps, mais vous allez toujours faire face au problème qu'un utilisateur peut facilement prendre une capture d'écran, imprimer une page, enregistrer une copie sur leur disque, etc. . une fois que vous avez nourri une page pour eux de toute façon ...

la réponse pour vous question est:

  • Lorsque signe utilisateur presse sur. (Utilisateur va à la page spécifique - par exemple - default.aspx) vous pouvez ajouter un LinkButton comme lien signOut et dans le gestionnaire d'événements clic vous pouvez écrire Response.Redirect ( "Default.aspx");

  • Et quand le bouton « retour » presse utilisateur du navigateur Il ne doit pas aller à la page précédente // ajoutez le code suivant à votre code derrière de la page

    override protégé OnPreRender vide (EventArgs e)

    {

     base.OnPreRender(e);
    string strDisAbleBackButton;
    strDisAbleBackButton = "<script language="javascript">\n";
    strDisAbleBackButton += "window.history.forward(1);\n";
    strDisAbleBackButton += "\n</script>";
    ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
    

    }

se référer à csharpdotnetfreak.blogspot.com

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