示例#1
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            //BankModel bank = new BankModel();
            //DBInit.Instance.Init(bank);

            if (!ModelState.IsValid)
            {            
                return View(model);
            }
            //var user = await MemberBLL.Instance.Find_SysUser(model.Email);
            //if (user == null) ModelState.AddModelError("UserName", "用户名不存在");

            var user = await MemberBLL.Instance.Get_SysUser(model.Email, Utils.MD5Encrypt(model.Password));
            if (user != null )
            {
                ViewBag.LoginState = "已登录";
                //FormsAuthentication.SetAuthCookie(model.Email, model.RememberMe);
                var identity = MemberBLL.Instance.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
                AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = model.RememberMe }, identity);

                Session.Add(ConfigBusiness.Session_User_Key, user);

                sys_log logInfo = new sys_log();
                logInfo.user_id = user.user_id;
                logInfo.user_name = user.user_name;
                logInfo.interface_name = "Login";
                logInfo.interface_param = JsonHelper.ToJson(model);
                logInfo.result = ViewBag.LoginState;
                LogBusiness.Instance.WriteLog(logInfo, GW.Utils.LogMsgLevel.Info);

                return RedirectToLocal(returnUrl);

            }
            else { ViewBag.LoginState = "未登录"; }

            AddErrors(new IdentityResult(new string[] { "登录失败" }));

            sys_log logInfo2 = new sys_log();
            logInfo2.user_id = user.user_id;
            logInfo2.user_name = user.user_name;
            logInfo2.interface_name = "Login";
            logInfo2.interface_param = JsonHelper.ToJson(model);
            logInfo2.result = ViewBag.LoginState;
            LogBusiness.Instance.WriteLog(logInfo2,GW.Utils.LogMsgLevel.Info);        
            return View(model);
        }
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            // 这不会计入到为执行帐户锁定而统计的登录失败次数中
            // 若要在多次输入错误密码的情况下触发帐户锁定,请更改为 shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                case SignInStatus.Failure:
                default:
                    ModelState.AddModelError("", "无效的登录尝试。");
                    return View(model);
            }
        }