asp.net 2.0防止同一用户同时登陆

asp.net

要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名.但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间.这个时间可以跟用户的session值联系起来.刚好当用户session值失效的时候该用户在cache里面的信息也会被清空.这样就达到了防止同时登陆的效果,具体代码如下:

放在登陆成功的地方

                        string key = TextBox1.Text;   //用户名文本框设为cache关键字
                        string uer = Convert.ToString(Cache[key]);  //读取cache中用户相应的值
                        //判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆
                        if (uer == null || uer == String.Empty)
                        {

                            //定义cache过期时间

                            TimeSpan SessTimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);

                          //第一次登陆的时候插入一个用户相关的cache值,
                            HttpContext.Current.Cache.Insert(key, key, null, DateTime.MaxValue, SessTimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
                            Session["ADMINID"] = TextBox1.Text;
                                                      Response.Redirect("main.aspx");
                        }
                        else
                        {
                            //重复登陆
                            Response.Write("<script>alert('您的账号已经登陆!');window.location='login.aspx';</script>");
                        }

 

时间: 2024-12-03 10:34:35

asp.net 2.0防止同一用户同时登陆的相关文章

技巧:ASP.NET 2.0防止同一用户同时登陆

asp.net|技巧 要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间.这个时间可以跟用户的session值联系起来,刚好当用户session值失效的时候该用户在cache里面的信息也会被清空.这样就达到了防止同时登陆的效果,具体代码如下: 放在登陆成功的地方: stri

ASP.NET 2.0防止同一用户同时登陆方法

要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是 什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间.这个时间可以跟用户的session值联系起来,刚好当用户session值失效的时候该用户在cache里面的信息也会被清空.这样就达到了防止同时登陆的效果,具体代码如下: 放在登陆成功的地方: 以下是引用片段:string

ASP.NET 2.0 中的窗体身份验证

asp.net 概述 窗体身份验证使用用户登录到站点时创建的身份验证票,然后在整个站点内跟踪该用户.窗体身份验证票通常包含在一个 Cookie 中.然而,ASP.NET 2.0 版支持无 Cookie 窗体身份验证,结果是将票证传入查询字符串中. 如果用户请求一个需要经过身份验证的访问的页,且该用户以前没有登录过该站点,则该用户重定向到一个配置好的登录页.该登录页提示用户提供凭据(通常是用户名和密码).然后,将这些凭据传递给服务器并针对用户存储(如 SQL Server 数据库)进行验证.在 A

ASP.NET 2.0中的登陆控件简介(3)

asp.net|控件  CreateUserWizard控件       使用该控件,可以很方便地一步步引导用户进行注册.拖拉其到设计窗体中,如下图:         当然,你可以对其属性进行更多地设置,比如,设置HeaderTemplate(头模版),StartNavigationTemplate(开始注册模版),FinishNavigationTemplate(结束注册模版)等,具体设置可以参考在线帮助.而该控件还允许当注册成功后向用户发邮件,比如:      <asp:CreateUser

ASP.NET 2.0中的登陆控件简介

asp.net|控件 asp.net 2.0中,新增了许多新的功能和控件.其中,新增的登陆控件可谓使得WEB应用的设计更加得心应手.什么是登陆控件呢?就是我们平常在WEB应用中经常要用到的用户注册,登陆,忘记密码,登陆后根据权限的不同而显示不同的页面等功能,现在在asp.net 2.0中都已经可以由提供的控件来实现了.ASP.NET 2.0中的登陆控件比较多,封装了大部分WEB应用中要实现系统登陆的系列功能,涉及到很多方面,本文将简单介绍一下它们的主要功能. 首先,asp.net 2.0中,为了

ASP.NET 2.0中的窗体身份验证

摘要:本教程阐释 ASP.NET 2.0 版中窗体身份验证的工作机制:阐释 IIS 和 ASP.NET 身份验证如何协作,以及 FormsAuthenticationModule 类的角色与操作. 概述 窗体身份验证使用用户登录到站点时创建的身份验证票,然后在整个站点内跟踪该用户.窗体身份验证票通常包含在一个 Cookie 中.然而,ASP.NET 2.0 版支持无 Cookie 窗体身份验证,结果是将票证传入查询字符串中. 如果用户请求一个需要经过身份验证的访问的页,且该用户以前没有登录过该站

ASP.NET 2.0中使用自定义provider

在ASP.NET 2.0中,新增加的membership provider功能,以及结合功能强大 的一系列注册,登陆控件,可以很方便地对用户的登陆和权限等进行管理(参见 <<ASP.NET 2.0登陆控件简介>>). 但是,可能大家会发现,ASP.NET 2.0自带的这些登陆控件和membership的管 理功能,默认的是和sql server 2005 express搭配使用的,那么,如何改成使 用SQL Server 2000或者是其他的数据源,如access,oracle等呢

关于ASP.NET2.0 中的用户控件编程使用

asp.net|编程|控件 今天用了一下2.0中的用户控件,发现使用编程方式使用用户控件,跟1.X 中截然不同. 1.首先,要在所要使用的Page 头部声明引用.如下: <%@ Reference Control="../Controls/AlbumEditor.ascx" %> 2.在后置代码里,从"ASP"空间中就可以找到此控件的类引用了,不过还需要事例一下.-_-! 不明白设计者为什么要这么做,还不如1.1 那样直观.如下:  ASP.Contro

组合ASP.NET 2.0数据控件构建强大用户接口

asp.net|接口|控件|数据 在前面的几个专栏中,我们分别介绍了ASP.NET 2.0中的几个数据控件:GridView, DetailsView, 和FormView.本文,我将结合这几个数据控件对GridView控件做一个详细的介绍,使用户能够对每个数据行获得一个详细的了解. 主要控件 DetailsView 和 FormView控件在显示后端数据源中的单个记录时功能强大,但是强迫用户在一页中显示无数条记录这很不现实.为此,我们可以将GridView控件和DetailsView或Form