2009-03-03 124 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

相关问题