2013-08-02 4 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> 

Я использую следующий код на главной странице, чтобы переключить обратную кнопку.Отключение браузера браузера в 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); 

У меня есть главная страница в этой кнопке выхода из системы есть только пользователь clickon, что пользователь будет перенаправлен на выход из системы page.this работает нормально, и когда я нажав кнопку назад он принимает меня к последней странице Я просматривал. Даже я пробовал с Javascript.

Я создаю тайминги сеанса через 5 минут. Когда истекает срок действия сеанса, пользователь будет перенаправлен на страницу истечения срока действия сеанса, а также отбрасывает меня на последнюю просматриваемую страницу.

+0

Проверьте этого. он отлично работает http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx – Syed

ответ

7

Вот эта функция JavaScript будет работать во всех браузерах и запретить пользователь навигационных вернуться на предыдущую страницу, нажав на браузер возвратной кнопку ниже фрагмента кода 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> 

Нам нужно поместить над сценарием в заголовке секции страницу, где нам нужно, чтобы пользователи не переходили на другую страницу с помощью кнопки «Назад назад».

Я объясню наше требование примером. У меня есть две страницы Defaul1.aspx и Default2.aspx. Теперь я перенаправляю страницу Default1.aspx на страницу Defaul2.aspx. После перехода с страницы Defaul1.aspx на Default2.aspx, если я попытаюсь вернуться к странице Default1.aspx из Defaul2.aspx, я хочу, чтобы пользователь не возвращался на предыдущую страницу (Defaul1.aspx). Чтобы достичь этой функциональности, разместите выше функцию JavaScript в разделе заголовка требуемой страницы.

После добавления нашей функции JavaScript на страницу, что код будет выглядеть следующим образом

<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> 

Мы также можем достичь этого путем отключения кэширования браузера в код написать следующие строки кода в случае Page_Init или Page_Load события и не забывайте добавлять пространство имен с помощью System.Web; потому что HttpCacheability связана с этим пространством имен.

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

Мы должны поместить этот код на странице, где нам нужно отключить броузер кнопку назад

+0

Привет, 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> 

Здравствуйте, Вы можете сделать это так,

Реализовать этот код в мастер страница

Я реализовал это, и это сработало для меня ..

+0

Я поместил этот кусок кода в главную страницу, а я откинул назад до последней просматриваемой страницы, еще одна вещь здесь, в приложении backbutton shhould work, а на странице выхода и странице окончания срока действия страницы back buuton не должно работать. Это требование , –

+0

Вставьте этот код кода на странице выхода и странице истечения срока действия ... и этот код отлично работает в моем приложении – salah9

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

+0

просто используйте это ... – Msoni

1

Перенаправление на Logout.aspx страницу на кнопку «Выход» Добавить новую страницу в Logout.aspx со следующим содержанием тела.

 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> 

добавить JavaScript, как показано ниже

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")); 
    } 

Источник: http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx

1

Когда пользователь нажимает кнопку выхода из системы, вы должны написать одну строку, чтобы очистить сессию.

Session.Abondon(); 

и перейти на страницу выхода или страницу входа в систему. Так что, как только пользователь нажимает кнопку выхода из системы, он не может вернуться, потому что сеанс был очищен.

0

Чтобы отключить кнопку назад браузера написать следующий код на главной странице заголовка части, как

<script language="JavaScript" type="text/javascript"> 
window.history.forward();    
</script> 
Смежные вопросы