我有一个ASP.net页面。当我关闭网页时,我需要清除会话变量。关闭浏览器实际上应该清除会话变量一个ASP.net会话ID
如何处理这个我需要保持超时到20分钟。 如果他关闭和登录在二十分钟的次数超时时间
是否有清除ASP.net会话ID
我有一个ASP.net页面。当我关闭网页时,我需要清除会话变量。关闭浏览器实际上应该清除会话变量一个ASP.net会话ID
如何处理这个我需要保持超时到20分钟。 如果他关闭和登录在二十分钟的次数超时时间
是否有清除ASP.net会话ID
[编辑]正如其他人的建议,你的会议应时间任何方法可行但如果你想在超时之前关闭会话(例如清理大型会话对象)并让你的javascript可用...
你可以用一个window.onbeforeunload
处理程序来做到这一点,该处理程序回发到退出页面。
function CloseSession()
{
location.href = 'SignOut.aspx';
}
window.onbeforeunload = CloseSession;
你也可以通过AJAX做到这一点。 SignOut.aspx页面(或者你正在使用的任何平台)应该放弃用户的会话。
只需准备好在浏览器崩溃的情况下就不会被调用。 – 2008-11-13 14:23:59
我认为唯一的好方法是在服务器上设置会话变量的超时时间。 Web服务器无法确定用户是否已关闭浏览器。
Javascript不是一个好的选择,因为你可以禁用它的客户端。
你不能那样做。
你不控制端的浏览器-用户。用户可能会关闭浏览器,崩溃,断开Internet连接,禁用JavaScript或崩溃等,或者用户可能只需输入另一个URL(之后用户可能会使用后退按钮返回到您的页面,并且希望继续他/她的会议与您的网站)。
window.onbeforeunload在每次卸载页面时触发。即使用户浏览到您网站上的其他页面,也可能需要重新进行会话。
我不清楚ASP.Net如何实现其会话,但Cookie RFC的一部分是,会话cookie(无特定'expires'日期的cookie)在浏览器关闭时被清除。
肯定有办法让ASP.Net使用正确的会话cookie而不是固定超时的cookie?
您好试试这个JavaScript函数
function ConfirmClose()
{
if (event.clientY < 0)
{
/* Your asynchronouse request to the page and call that function*/
}
}
/*now call this method on event of javascript*/
我didn'try这一点,但它只是从心中出来
不是这种重复http://stackoverflow.com/questions/283591/ aspnet-session-destroy-if-he-close-the-browser – 2008-11-13 14:51:53
对不起,但我想你可能会试图在这里解决错误的问题。为什么你需要立即清除会话状态? – Kramii 2008-11-13 15:25:50