惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 张锋

[GDI+]如何制作出高质量的缩略图 Soap 结构初识 WebCom.Net [GDI+]如何将一个彩色图像转换成黑白图像 [GDI+] 创建Images的两种方式 操作Oracle数据库实现上传图片到Blob类型的字段 世界杀毒软件排名 Scroll Page Class 解决定位问题 struct和class的区别 - 张锋 - 博客园 B/S系统中如何定位到对象 学习游戏开发经典网站 Url2Ip - 张锋 - 博客园 BLOG程序 IE功能汇总 WEB打印的相关技术分析 Blog RSS Reader 资料整理 - 张锋 Oracle常用的一些功能集锦 XML Server与XML-enabled Web Server介绍 对于想这种频繁的视图如何看待
如何防止同一帐户重复登录系统
张锋 · 2004-10-12 · via 博客园 - 张锋

如何防止同一帐户重复登录系统

如何防止控制客户端使其用同一帐户重复登录系统.

解决思路:

维护一online表,查看有登陆,就不允许再次登陆,以sessionid作为唯一标识符号,也可以产生一个GUID发到COOKIE中,以区分不同的CLIENT,再佐以JS,可以达到更好的效果,比如离开后自动离线

解决代码:

public virtual void Application_Start(object sender, EventArgs e)
{
// reset the mailer indicator
Application["MailerStatus"= "All Mailings Complete";

// initialize a datatable for users online
DataTable objUserTable = new DataTable();
objUserTable.Columns.Add(
"SessionID",System.Type.GetType("System.Guid"));
objUserTable.Columns.Add(
"PeopleID",System.Type.GetType("System.Int32"));
objUserTable.Columns.Add(
"ShowDetail",System.Type.GetType("System.Boolean"));
DataColumn[] pk 
= new DataColumn[1];
pk[
0= objUserTable.Columns[0];
objUserTable.PrimaryKey 
= pk;
Application[
"UserTable"= objUserTable;
}


/// 
/// The Session_Start event adds user session information to 
/// Application["UserTable"].
/// 

public virtual void Session_Start(object sender, EventArgs e)
{
Application.Lock();
//Application.Lock ();
DataTable objUserTable = (DataTable)Application["UserTable"];
DataRow objRow 
= objUserTable.NewRow();
Guid objGuid 
= Guid.NewGuid();
objRow[
0= objGuid;
Session[
"PfSessionID"= objRow[0];
objRow[
1= 0;
objRow[
2= false;
objUserTable.Rows.Add(objRow);
Application[
"UserTable"= objUserTable;
Application.UnLock();
}



/// 
/// The Session_End event deletes user session information from 
/// Application["UserTable"].
/// 

public virtual void Session_End(object sender, EventArgs e)
{
Application.Lock();
DataTable objUserTable 
= (DataTable)Application["UserTable"];
objUserTable.Rows.Find((Guid)Session[
"PfSessionID"]).Delete();
Application[
"UserTable"= objUserTable;
Application.UnLock();
}


http://www.donghaisoft.com 易学之家,八字,六爻,风水,奇门遁甲,六壬,金口诀,周易,阳宅风水,风水堪舆,张锋,风水罗盘指南针

posted on 2004-10-12 20:30  张锋  阅读(3501)  评论(5)    收藏  举报