2013-08-02 16 views
6
<script type="text/javascript"> 

    { 

     function DisableBackButton() { 

       window.history.forward() 

      } 

      DisableBackButton(); 

      window.onload = DisableBackButton; 

      window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() } 

      window.onunload = function() { void (0) } 

    } 

</script> 

Korzystam z następującego kodu na stronie wzorcowej, aby podać przycisk Wstecz.Wyłączanie przycisku wstecz w przeglądarce C#

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); 
Response.Cache.SetNoStore(); 

Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d); 
Response.Expires = -1500; 
Response.CacheControl = "no-cache"; 
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Mam strony wzorcowej w tym przycisku wylogowania jest tam raz clickon użytkownika, użytkownik zostanie przekierowany do wylogowania page.this działa poprawnie, a raz jestem kliknięcie przycisku na plecach to bierze mnie na ostatniej stronie Przeglądałem. Nawet próbowałem z Javascriptem.

Tworzę limit czasu sesji po 5 minutach. Kiedy sesja wygaśnie, użytkownik zostanie przekierowany na stronę wygasającą sesję, tam również backbutton przenosi mnie na ostatnią przeglądaną stronę.

+0

sprawdzić. działa dobrze http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx – Syed

Odpowiedz

7

Tutaj ta funkcjonalność JavaScript będzie działać we wszystkich przeglądarkach i uniemożliwić użytkownikom nawigacją powrót do poprzedniej strony trafiając w przeglądarce powrotem przycisk wyboru poniżej kawałek kodu JavaScript

<script type="text/javascript" language="javascript"> 
    function DisableBackButton() { 
     window.history.forward() 
     } 
    DisableBackButton(); 
    window.onload = DisableBackButton; 
    window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() } 
    window.onunload = function() { void (0) } 
</script> 

Musimy umieścić nad scenariuszem w sekcji nagłówka stronę, na której musimy uniemożliwić użytkownikom powrót do innej strony za pomocą przycisku wstecz przeglądarki.

Wyjaśnię nasze wymagania na przykładzie Mam dwie strony Defaul1.aspx i Default2.aspx teraz przekierujemy ze strony Default1.aspx do strony Defaul2.aspx. Po przyjściu ze strony Defaul1.aspx do Default2.aspx, jeśli spróbuję wrócić do strony Default1.aspx z Defaul2.aspx, chcę uniemożliwić użytkownikowi powrót do poprzedniej strony (Defaul1.aspx). Aby osiągnąć tę funkcjonalność umieść powyższą funkcję JavaScript w sekcji nagłówka wymaganej strony.

Po dodać naszą funkcji JavaScript do naszej strony, że kod będzie tak

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Disable Browser Back buttons</title> 
    <script type="text/javascript" language="javascript"> 

     function DisableBackButton() { 
     window.history.forward() 
     } 
     DisableBackButton(); 
     window.onload = DisableBackButton; 
     window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() } 
     window.onunload = function() { void (0) } 
    </script> 
    </head> 
    <body > 
    <form id="form1" runat="server"> 
    <div> 
     First Page 
    </div> 
     <div> 
     <asp:Button id="btnFirst" runat="server" Text="Go to First Page" PostBackUrl="~/Default.aspx" /> 
     <asp:Button ID="btnSecond" runat="server" Text="Go to Second Page" PostBackUrl="~/Default2.aspx" /> 
     <asp:Button ID="btnThree" runat="server" Text="Go to Third Page" PostBackUrl="~/Default3.aspx" /> 
     </div> 
    </form> 
    </body> 
    </html> 

Możemy również osiągnąć poprzez wyłączenie buforowania przeglądarki w kodzie za napisać następujące linie kodu w przypadku Page_Init lub zdarzenia Page_Load i nie zapomnij dodać przestrzeni nazw za pomocą System.Web; ponieważ HttpCacheability dotyczy tej przestrzeni nazw.

protected void Page_Init(object sender, EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
     Response.Cache.SetNoStore(); 
    } 

Musimy umieścić ten kod na stronie gdzie musimy wyłączyć przeglądarkę na przycisk

+0

Witaj maddy kod działa na dwie strony, ale kiedy strona główna pojawia się na obrazku, to nie działa maddy. –

3
<script type="text/javascript" language="javascript"> 
    window.onload = function() { 
     noBack(); 
    } 
    function noBack() { 
     window.history.forward(); 
    } 
</script> 
<body onpageshow="if (event.persisted) noBack();"> 
</body> 

Witam, Można zrobić to w ten sposób,

Wdrożenie tego kodu master strona

Zaimplementowałem to i zadziałało dla mnie ..

+0

Umieściłem ten fragment kodu na stronie wzorcowej, a przycisk "backbutton" nadal przenosi mnie na ostatnią przeglądaną stronę. Jeszcze jedna rzecz tutaj w backbuttonie aplikacji powinna działać i na stronie wylogowania i stronie wygasania sesji wstecz buuton nie powinien działać. To jest wymóg . –

+0

Proszę wstawić ten fragment kodu na stronie wylogowania i stronie wygaśnięcia ... i ten kod działa poprawnie w mojej aplikacji – salah9

3
<script language="JavaScript"> 
this.history.forward(-1); 

+0

po prostu użyj tego ... – Msoni

1

przekierować do Logout.aspx stronę na kliknięcie „wyloguj” Dodaj nową stronę jako Logout.aspx z następujących zawartości ciała.

 Please wait. You are Logging out. 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"> 
     </asp:Timer> 

dodać skrypt jak poniżej

function noBack() { 
      window.history.forward() 
     } 
     noBack(); 
     window.onload = noBack; 
     window.onpageshow = function (evt) { if (evt.persisted) noBack(); } 
     window.onunload = function() { void (0); } 

Logout.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetNoStore(); 
    } 

    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     Response.Redirect("Login.aspx")); 
    } 

Źródło: http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx

1

Kiedy użytkownik kliknie przycisk wylogowania, należy napisać jeden wiersz, aby usunąć sesję.

Session.Abondon(); 

i przejdź do strony wylogowania lub strony logowania. Tak więc, gdy użytkownik kliknie przycisk wylogowania, nie może wrócić, ponieważ jego sesja została wyczyszczona.

0

Aby wyłączyć przycisk Wstecz w przeglądarce wpisać poniższy kod na stronie głównej części nagłówka jako

<script language="JavaScript" type="text/javascript"> 
window.history.forward();    
</script> 
Powiązane problemy