限制同一用户名重复登陆的问题,在线等。。。 我用的是VS2003,C#我本来是想在数据库中的用户表里多申明一个字段来表示用户是否上线的,但是当用户直接关闭浏览器时,就无法对数据库进行操作希望各位高手帮帮新手,有其他办法的希望能给个例子,问题解决马上结贴。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Session表示用户在线,关闭浏览器后Session失效,用户就离线了 可以用session id,首次每次登錄都把這個session id寫倒數據庫,如果現在的session id,不同,則強制退出。這樣就保證唯一登錄了。 session_start,session_end事件关闭浏览器时会激发session_end事件. 请问Visitor,是引用什么using指令? 可以序列化进数据库的,在sessin丢失后,重新加载当前站点,又一次生成了个序列化sessionID。 http://dotnet.aspx.cc/article/cf5ffabc-cfe1-4368-3c13-9b4fcd7c7168/read.aspx net_lover(【孟子E章】) :你说的这个地址我看了的,上面什么都没有,你那里留得有的话,谢谢,麻烦发来看看,拜托了 http://dotnet.chinaitlab.com/ASPNET/715236.html希望这个对你有点用! tiantian1980(天天) :你说的这个方法我试过了也不行啊 ASP.NET 2.0中我的解决方法是设计一个登录的用户控件,登录后设置Context.User为认证,然后登录控件的Visible为false包含控件的页面直接检查用户是否被认证,关闭浏览器用户立即被退出。用户控件中登录后FormsAuthentication.SetAuthCookie(EmailAddress.Text, true);登录页面if (Context.User.Identity.IsAuthenticated) Login.Visible = false;else PasswordControl.Visible = false; net_lover(【孟子E章】) 给个地址没有用啊,如果还有的话肯定是正确的答案了哎,命苦啊 这有什么好烦恼的,用Cookies做.很简单. cengyidao(曾一刀) ;高手觉得简单不妨指点一下小弟 用Ajax技术在document的unload事件里写个脚本往服务器发送一条消息,就可以了,我有做个一个聊天室的例子就是这样做的! 我觉得这个问题当中有两点不好掌握:1,第一个登录的用户直接关闭了IE,而不是正常LOGOUT,那么服务器端的SESSION 仍然存活但却无法感知,所以当这个用户在SESSION未过期再次LOGIN的时候,需要准确识别。2,第二个试图用已在服务器端产生SESSION 的用户登录的时候,需要验证cokie 是否产生了变化。但觉得就是第一个问题需要考虑的多一些,就是说当这个用户关闭了IE再次打开时,应该在COOKIE中携带某一恒定值提供检测,而这个值又是随机产生的,就可以解决这个问题了。 FormsAuthentication.SetAuthCookie 就已经解决了问题 退出时调用一个js函数。js 函数里写一个弹出窗口window.open("userLeave.aspx",0,0,1500,1500)设置打开的页面宽高都为0,且不在屏幕区域内,userLeave.aspx里面写更新数据库的语句,完成之后自动关闭本身页面 用用户ID和SessionID一起限制看看session_start 的时候比较看看是否有相同IDsession_end 根据SessionID清除记录 用Session_start跟session_end这两个事件可以解决的我以前做一个财务系统的时候就是这么做的。不过你要控制Session超时的时间。默认的是20分钟。如果你关闭浏览器之后只有在20分钟之后才能再次登陆不过这个方法还是要在数据库里面加字段具体用。NET代码实现的还没研究出来。。 可用ajax 实现,在javascript的unload事件里加一段操作应该就可以。 http://community.csdn.net/Expert/topic/4779/4779551.xml?temp=.3655359 人不多时,可把每个人ID 加入Application 或 Cache中,退出时移除,登录时比较 .NET 常见问题 ASP.NET页面事件无法执行 请帮忙看下这个登陆代码! 水印问题,高手帮忙 文档链接的缓存问题 +++++++有大哥在吗,请教个很简单的问题 ?ntext类型的数据为什么不能用string表示??? 如何创建一个队列啊??、急急急 (在线急等)一个类与object隐式转换的问题! 求救,再一个页面中怎样保存一个公共变量的值,不用Cookie,已此推致两个页面传参(不用页面传参方法)--再线等 同样的一个程序,要部署到多个IIS服务器上,可有一键部署之类的工具? DataSet读取Xml问题 关于重载的问题
你说的这个地址我看了的,上面什么都没有,你那里留得有的话,谢谢,麻烦发来看看,拜托了
你说的这个方法我试过了也不行啊
包含控件的页面直接检查用户是否被认证,关闭浏览器用户立即被退出。用户控件中登录后
FormsAuthentication.SetAuthCookie(EmailAddress.Text, true);登录页面
if (Context.User.Identity.IsAuthenticated)
Login.Visible = false;
else
PasswordControl.Visible = false;
哎,命苦啊
用Cookies做.
很简单.
高手觉得简单不妨指点一下小弟
1,第一个登录的用户直接关闭了IE,而不是正常LOGOUT,那么服务器端的SESSION 仍然存活但却无法感知,所以当这个用户在SESSION未过期再次LOGIN的时候,需要准确识别。
2,第二个试图用已在服务器端产生SESSION 的用户登录的时候,需要验证cokie 是否产生了变化。但觉得就是第一个问题需要考虑的多一些,就是说当这个用户关闭了IE再次打开时,应该在COOKIE中携带某一恒定值提供检测,而这个值又是随机产生的,就可以解决这个问题了。
window.open("userLeave.aspx",0,0,1500,1500)设置打开的页面宽高都为0,且不在屏幕区域内,
userLeave.aspx里面写更新数据库的语句,完成之后自动关闭本身页面
默认的是20分钟。如果你关闭浏览器之后只有在20分钟之后才能再次登陆
不过这个方法还是要在数据库里面加字段
具体用。NET代码实现的还没研究出来。。