asp.net判断用户登录错误次数3次,就不能在登陆了!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net判断用户登录错误次数3次,就不能在登陆了!相关的知识,希望对你有一定的参考价值。

if(Request.Cookies["loginnum"]!=null)

if(Request.Cookies["loginnum"].value=="3")

Response.Write("<script>alert(\"密码连续错误3次,禁止登录!!!\");</script>");
return;


//判断密码是否输入正确
if(password!="密码")

//判断cookie是否存在
if(Request.Cookies["loginnum"]==null)

//写入cookie
HttpCookie logcookie= new HttpCookie("loginnum","1");
Request.Cookies["logcookie"].Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(logcookie);

else

//累加一次错误
int num = int.Parse(Request.Cookies["logcookie"].Value)+1;

Request.Cookies["logcookie"].Value = num .ToString();


else

//设置cookie过期 且清空登录错误次数
Request.Cookies["logcookie"].Value = 0;
Request.Cookies["logcookie"].Expires = DateTime.Now.AddDays(-1);
Response.Write("<script>alert(\"登录成功\");</script>");


给我分吧!呵呵

楼下的别瞎说话 怎么不行了。关键只是被人清空cookie而已。楼主又没细说具体。
照你这样说 那数据库被黑了 不一样的可以重负登录 也阻止不了。
参考技术A 楼上的方法不行吧,要是别人清空COOKIE的话又可以登录了
————————————————————————————————
用一个表来存储当天登录的ID、IP,并标志是否成功登录,如果同一个ID和IP登录失败3次就拒绝登录

绑定IP的目的是为了防止恶意登录,但也不能完全阻止,因为有的内网使用NAT转换,登录IP可能相同
——————————————————————————————————
呵呵 ,考虑程度不一样,当然你那个方法也有很多优点,看自己要求吧
参考技术B 在数据库中加入一个字段,每次登陆判断时减一次。

asp.net mvc 中怎么像webform一样自定义一个BaseController实现判断用户是不是登录 然后获取用户的权限

写一个过滤器,在需要做身份验证的action上加上过滤器就可以了

        [CheckUserFilter]
        public ActionResult DelItem(int? id, FormCollection form)
        
            bool result = false;
            if (id != null)
            
                int _id = id ?? 0;
                result = new DbHelper().DelSysUserInfo(_id);
                if (result)
                
                    return Redirect(Request.UrlReferrer.AbsoluteUri);
                
            
            var ids = form["users"].Split(',');
            result = new DbHelper().DelSysUserInfo(ids);
            return Redirect(Request.UrlReferrer.AbsoluteUri);
        

 public class CheckUserFilter : ActionFilterAttribute
    
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        
            base.OnActionExecuting(filterContext);
            if (filterContext.HttpContext.Session["currentUser"] != null)
            
                return;
            
            else if (CookieManage.GetCookie("login") != null)
                .......相关操作

参考技术A 没必要非用Controller,你只要写一个公共类,
在这个类中重写OnActionExecuting方法,
然后再每个页面加载的action前加上[类名]就行了,
效果就是每次执行这个action之前就走一遍这个方法。

以上是关于asp.net判断用户登录错误次数3次,就不能在登陆了!的主要内容,如果未能解决你的问题,请参考以下文章

在ASP.NET环境下怎样设置用户登录次数(session)

ASP.NET中能不能实现无刷新登录?

12asp.net=============用户登录系统

asp.net C# 中用session传递数据的用法

2. 循环判断

ASP.NET MVC下判断用户登录和授权的方法