ASP.NET如何防止用户多次登录(2)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:ASP.NET 2.0中文验证码的实现
在判断的时候只要把取得的文本框的值与Session[valicode] 进行判断是否一致就行了。 //建立位图对象 Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb); //根据上面创建的位置对象创建绘图面 Graphics g = Graphics.FromImage(NewbitMap)

然后在logout.aspx的Page_Load中写和Session_End相同的方法,同时在logout.aspx中加入事件:onload="javascript:window.close()"

但是这样还是有问题,javascript在不同的浏览器中可能有不同的行为,还有就是当通过文件->关闭时没有判断到。

2、使用xmlhttp方法(这种方法测试下来没有问题)

在每个页面中加入如下的javascript(这些javascript也可以写在共通里,每个页面引入就可以了)

以下是引用片段:

var x=0;

function myRefresh()

{

var httpRequest = new ActiveXObject("microsoft.xmlhttp");

httpRequest.open("GET", "test.aspx", false);

httpRequest.send(null);

x ;

if(x< 60) //60次,也就是Session真正的过期时间是30分钟

{

setTimeout("myRefresh()",30*1000); //30秒

}

}

myRefresh();

在web.config中设置

以下是引用片段:

< sessionState mode="InProc" timeout="1">< /sessionState>

test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:

以下是引用片段:

Response.Expires = -1;

保证不使用缓存,每次都能调用到这个页面。

原理就是:设置Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后Session也会过期。这样就可以满足要求了。

分享:解读ASP.NET网络编程中经常用到的27个函数集
1、DateTime 数字型 以下是引用片段: System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2009-05-17
相关.Net教程