Пример #1
0
        public async Task <ActionResult> SignIn(string username, string password, bool rememberMe = false)
        {
            var context = EntityBuilder.GetContext <Member>();
            var member  = await context.Query().SingleOrDefaultAsync(t => t.Username.ToLower() == username.ToLower());

            if (member == null)
            {
                Response.StatusCode             = 400;
                Response.TrySkipIisCustomErrors = true;
                return(Content("账号不存在!"));
            }

            if (!member.VerifyPassword(password))
            {
                Response.StatusCode             = 400;
                Response.TrySkipIisCustomErrors = true;
                return(Content("密码错误!"));
            }

            if (!member.IsEnabled)
            {
                Response.StatusCode             = 400;
                Response.TrySkipIisCustomErrors = true;
                return(Content("用户被禁用!"));
            }
            //更新最近登录时间
            member.LastLoginDateTime = DateTime.Now;
            await context.EditAsync(member);

            //登录操作
            ALEXFWAuthentication.SignIn(member.Index.ToString(), rememberMe);
            return(new HttpStatusCodeResult(200));
        }
Пример #2
0
        public async Task <ActionResult> SignIn(string username, string password)
        {
            var context = EntityBuilder.GetContext <Entity.UserAndRole.Admin>();
            var admin   = await context.Query().SingleOrDefaultAsync(t => t.Username.ToLower() == username.ToLower());

            if (admin == null)
            {
                ViewBag.ErrorMessage = "管理员不存在";
                return(View());
            }
            if (!admin.VerifyPassword(password))
            {
                ViewBag.ErrorMessage = "密码错误";
                return(View());
            }
            if (admin.IsLocked)
            {
                ViewBag.ErrorMessage = "用户被锁定";
                return(View());
            }

            //更新登录时间
            admin.LastLoginDateTime = DateTime.Now;
            await context.EditAsync(admin);

            //生成登录Token
            ALEXFWAuthentication.SignIn(admin.Index.ToString(), false);

            return(RedirectToAction("Index", "Home"));
        }
Пример #3
0
 /// <summary>
 ///     注销
 /// </summary>
 /// <returns></returns>
 public ActionResult SignOut()
 {
     if (!User.Identity.IsAuthenticated)
     {
         return(RedirectToAction("SignIn"));
     }
     ALEXFWAuthentication.SignOut();
     return(RedirectToAction("SignIn"));
 }