2009-03-03 105 views
0

這裏的情況是:是否有更好和/或更簡單的方法來註銷?

  1. 用戶通過存儲在MSSQL數據庫
  2. 如果用戶被認證的用戶名/密碼登錄時,該系統使一個會話變量與用戶名/密碼SHA1'd和布爾如果用戶是否登錄(對於後續頁面)
  3. 我需要能夠銷燬會話變量。我也想要一個確認框。

這是我到目前爲止有:

<script type="text/javascript"> 
    //<![CDATA[ 
    function doLogout() { 
     try { 
      var conf = false; 
      conf = confirm("Really log out?"); 
      if (conf === true) { 
       $.post("logout.aspx"); 
      } 
     } catch (ex) { 
      alert(ex); 
     } 
    } 
    //]]> 
</script> 

由於它是一個Ajax請求將不會重新載入頁面(功能工作正常,請求銷燬Session),我想我需要一個不同的方法來做到這一點。如果可能,我真的很想在ASP.NET中做到這一切。

只要滿足上述#3條件,任何解決方案都是受歡迎的。

回答

1

那麼,首先你的解決方案取決於具有Javascript的用戶,如果他們不這樣做,他們將無法註銷。我不認爲你應該爲此使用AJAX,只是一個簡單的鏈接/按鈕logout.aspx會很好,然後可以正確地將它們重定向到設置了「註銷」狀態的主頁。然後,您可以使用一些不顯眼的Javascript來添加確認。

jQuery的版本(既然你提到):

<a href="logout.aspx" id="logout-link">Logout</a> 
<script type="text/javascript"> 
    //<![CDATA[ 
    $(document).ready(function() { 
     $('#logout-link').click(function() { 
      return confirm("Really log out?"); 
     }); 
    }); 
    //]]> 
</script> 

純JavaScript版本:

<a href="logout.aspx" id="logout-link">Logout</a> 
<script type="text/javascript"> 
//<![CDATA[ 
window.onload = function() { 
    if(!document.getElementById) return; 
    document.getElementById('logout-link').onclick(function() { 
     return confirm("Really log out?"); 
    }); 
} 
//]]> 
</script> 
+0

謝謝!這工作非常完美。我需要刷新我的JavaScript,它已經有幾年了:P – Anders 2009-03-03 14:52:33

相關問題