Exemplo n.º 1
0
        public ActionResult Login(LoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = DataAccessor.AccountRepository.CheckIdentity(
                new Identity
            {
                MemberName   = model.MemberName,
                PasswordHash = CryptoHelper.Hash(model.Password)
            });

            if (result)
            {
                FormsAuthentication.SetAuthCookie(model.MemberName, model.RememberMe);

                var account = DataAccessor.AccountRepository.GetAccountByIdentity(IdentityType.QRBaId, model.MemberName);
                CookieHelper.SetCookie(Response, Constants.AccountId, account.Id.ToString(), model.RememberMe);

                var codeIdList = CookieHelper.GetAnonymousCodeIdList(Request);
                foreach (var codeId in codeIdList)
                {
                    var code = DataAccessor.CodeRepository.GetCode(Constants.AnonymousId, codeId);
                    if (code != null)
                    {
                        code.AccountId = account.Id;
                        code.CodeId    = 0;
                        code           = DataAccessor.CodeRepository.AddCode(code);
                        DataAccessor.CodeRepository.RemoveCode(Constants.AnonymousId, codeId);
                        FileHelper.TransferCode(Constants.AnonymousId, codeId, account.Id, code.CodeId, code.BackgroundContentType);
                    }
                }
                CookieHelper.ClearAnonymousCodeIdList(Response);

                return(RedirectToLocal(model.ReturnUrl));
            }
            else
            {
                Danger("用户名或密码错了 ╮(╯▽╰)╭", true);
                return(View());
            }
        }