●●●●●怎么样在点击关闭按钮的时候让Session清除●●●●● ---在线急等!!!!!!!

hyy567 2009-03-30 03:40:14
怎么样在点击关闭按钮的时候让Session清除.
就是在关闭按钮或关闭IE浏览器的时候让Session清空,因为Session他记录着我的用户名.我做的是单点登陆


Asp.net
...全文
1145 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchong911 2012-06-26
  • 打赏
  • 举报
回复
给你个例子自己看:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>

<script type="text/javascript" src="script.js"></script>

</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="写入Session" /></div>
</form>
</body>
</html>
========================Default.aspx 结束===========================================


========================Default.aspx.cs 开始===========================================

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if (!string.IsNullOrEmpty(Request.QueryString["___command"]))
{
string cmd = Request.QueryString["___command"];
if (cmd == "ClearSession")
Session.Remove("name");//清空Session
}

if (Session["name"] != null)
this.Label1.Text = Session["name"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["name"] = "vvvvvvvvvvvvv";
if (Session["name"] != null)
this.Label1.Text = Session["name"].ToString();
}
}

========================Default.aspx.cs 结束===========================================




========================script.js 开始===========================================
function GetXmlHttpObject()
{
//创建XMLHttpRequest对象来发送和接收HTTP请求与响应
xmlHttpObj = null;
try
{
// FireFox Opera 8.0+ Safari
xmlHttpObj = new XMLHttpRequest();
if(xmlHttpObj.overrideMimeType)
{
xmlHttpObj.overrideMimeType('text/xml');
}
}
catch(e)
{
// IE
try
{
xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttpObj;
}

function StateChanged()
{
if(___xmlHttp.readyState == 4)
{
if(___xmlHttp.status == 200)
{
}
else
{
}
}
}

var ___xmlHttp=null;
function ClearSession()
{
if(___xmlHttp==null)
___xmlHttp = GetXmlHttpObject();
if(___xmlHttp == null)
return false;

var url = "?___command=ClearSession&___clientRandom=" + Math.random();

___xmlHttp.open("GET", url, true);
___xmlHttp.onreadystatechange = StateChanged;
___xmlHttp.send(null);

}

window.onbeforeunload = function()
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
ClearSession();
}
}
========================script.js 结束===========================================
wangchong911 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 copico 的回复:
关闭IE的话Session会自动清除的,他不是cookies


正解
[/Quote]
扯淡
sy2222255555 2010-12-20
  • 打赏
  • 举报
回复
对什么啊,不懂别瞎说
syb1045 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 copico 的回复:]
关闭IE的话Session会自动清除的,他不是cookies
[/Quote]
这样说究竟对么??
zorou_fatal 2009-03-30
  • 打赏
  • 举报
回复
你是指的关闭整个浏览器进程还是关闭浏览器当中正在浏览的某一页?
walkghost 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 songhtao 的回复:]
要使浏览器关了session也会关了的,要手动清空session
用session.clear()
session.Abandon()

关闭浏览器,session是不会消失的!要等到超时后,session才会消失。
你可以在关闭浏览器的时候,打开一个小窗口,然后再在里面写session.abandon(),然后再关闭这个窗口。
<script language=javascript>
function window.onunload()
{
if (event.clientX <0 && event.clientY < 0)
window.open(…
[/Quote]
UP这个。
小范f-li.cn 2009-03-30
  • 打赏
  • 举报
回复
关闭IE的话Session会自动清除的,他不是cookies
zhao837447660 2009-03-30
  • 打赏
  • 举报
回复
web上的的会话是无状态的,比如用户关闭浏览器窗口,此时并不会明确地告诉服务器他要结束他要结束访问,一般情况下服务器并不能准确判断客户端什么时候结束访问。因此才会设定关闭浏览器20分后清除SEESSION对象
zhao837447660 2009-03-30
  • 打赏
  • 举报
回复
web上的的会话是无状态的,设一关闭按钮,使它触发sesson.abandon后会立马清除SESSION对象
M_arlboro 2009-03-30
  • 打赏
  • 举报
回复
Session.Clear()
pdsnet 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wujinjian2008n 的回复:]
引用 4 楼 copico 的回复:
关闭IE的话Session会自动清除的,他不是cookies


正解
[/Quote]
illidan008 2009-03-30
  • 打赏
  • 举报
回复
关闭IE就会自动清除session,但是会在关闭后的20分钟内还有session在服务器端保存,觉得等不及20分钟就用Session.Timeout("1");单位是分钟,这样就是1分钟就清除了;如果要是单击按钮清除的话可以用session.Clear()方法,这样就会移除所有的键和值,
hyy567 2009-03-30
  • 打赏
  • 举报
回复

那现在一些系统的单点登陆是怎么实现的,主要的逻辑是?
clal 2009-03-30
  • 打赏
  • 举报
回复
清除Session不难

但没有办法去判断浏览器或页面关闭

onbeforeunload 是指 body御载之前的事件

而 刷新,跳转,关闭 都会触发这个事件

if(event.clientX>document.body.clientWidth&&event.clientY <0||event.altKey)
这行代码判断是否关闭浏览器在目前的IE7、IE8下已经失效(其它浏览器没测试过)

所以完成还没有办法判断 页面是否关闭
hyy567 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 xiazhijiang520 的回复:]
引用 18 楼 hyy567 的回复:
谁说关闭IE的话Session会自动清除的.大家自己去试试真正的可以解决在来拿分,
不要Copy OK?


关闭IE的Session是会自动清除的,默认时间应该是20分钟.
不过没有关闭的事件可以释放SESSION
[/Quote]
我自然知道Session的默认时间,我现在要问的就是不点饥按钮,直接关IE.怎么样清楚Session
泡面之夏 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 hyy567 的回复:]
谁说关闭IE的话Session会自动清除的.大家自己去试试真正的可以解决在来拿分,
不要Copy OK?
[/Quote]

关闭IE的Session是会自动清除的,默认时间应该是20分钟.
不过没有关闭的事件可以释放SESSION
hyy567 2009-03-30
  • 打赏
  • 举报
回复
谁说关闭IE的话Session会自动清除的.大家自己去试试真正的可以解决在来拿分,
不要Copy OK?
阿非 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 copico 的回复:]
关闭IE的话Session会自动清除的,他不是cookies
[/Quote]

这是错误的 ~ 想session 失效 一个是手动,一个是session 设置的时间到了
wanghao3616 2009-03-30
  • 打赏
  • 举报
回复
<body onunload="window.open('Logout.htm','','')">
这个 可以 解决 菜单退出问题
果然如此 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 guochunyang 的回复:]
用session和cookie双重验证,
cookie设置为当前会话。
expire为cookie过期的时间。
如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效 。
[/Quote]
改一个字,双重验证
加载更多回复(14)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧