2014-11-05 66 views
0

在我的申請Captcha是每隔12分鐘後。在此,沒有應用這種驗證來避免page refresh,因此,當Captcha出現在屏幕上並且用戶從屏幕上按下F5 key頁面刷新和captcha disappear而沒有將Captcha細節填充到文本框中。現在,當我要在屏幕上顯示驗證碼時,用戶can not do refresh在頁面上,直到他submitted the captcha如何避免在captcha進入Asp.net時從f5鍵刷新頁面?

下面是驗證碼和JavaScript的ASPX代碼爲12分鐘

function ShowNewPage() { 
    var callbackFunctionArray = new Array(CloseCaptchaPopUp); 
    modalWin.ShowURL('Captcha.aspx', 225, 290, 'Please enter characters dislayed in image to proceed', null, callbackFunctionArray); 
} 

.aspx的後調用驗證碼圖片頁面

<div id="Popup_content"> 
     <div class="box1"> 
      <div class="popupheadrow"> 
       <p class="title"> 
        Please enter text below: 
       </p> 
      </div> 
      <div class="bodyrow" align="center"> 
       <div class="row" style="min-height: 18px"> 
        <asp:Label ID="lblMessage" runat="server" style="color:Green; font-size: 0.8em;" Text=" "></asp:Label> 
       </div> 
       <div class="row"> 
        <asp:Image ID="Image1" runat="server" ImageUrl="CaptchaImage.aspx" Style="width: 255px" /> 
       </div> 
       <div class="row"> 
        <asp:TextBox ID="txtimgcode" runat="server" CssClass="fields" TabIndex="1" MaxLength="10" 
         AutoComplete="false"></asp:TextBox> 
       </div> 
       <div class="row"> 
        <asp:Button ID="CaptchaSubmit" CssClass="submit" runat="server" OnClick="CaptchaSubmit_Click" 
         Text="Submit" Height="26px" /> 
         <asp:Button style="display:none" id="btnHidden" runat="server" OnClick="btnHidden_Onclick" /> 
       </div> 
      </div> 
     </div> 
     <script type="text/javascript"> 
      setInterval(function() { btnHidden.click(); }, 60000); 
</script> 
     <script type="text/javascript" language="javascript"> 
      function CloseCaptchaModalPopup() { 
       window.parent.modalWin.CallCallingWindowFunction(0, 'Information Saved Scucessfully'); 
      } 
     </script> 
    </div> 

回答

1

也許你可以修改您的解決方案,而不是顯示的驗證碼,每12分鐘,檢查自最近一次用戶填入驗證碼(存儲在cookie中,會話或任何您預先考慮的內容)以來的12分鐘。那麼驗證碼即使在頁面刷新後也會顯示。

+0

其實我想要的是當驗證碼出現在屏幕上時用戶無法刷新頁面@Daniel Stackenland – 2014-11-05 07:51:53

+0

驗證碼的目的是阻止非人使用網絡表單,如果您只是停止鍵盤輸入「F5」你可能不會阻止任何機器人避免驗證碼。 – 2014-11-05 08:10:25

相關問題