Exemplo n.º 1
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="newPassword">经过加密的新密码</param>
        /// <returns></returns>
        public async Task <Resp> ChangePasswordAsync(Models.ChangePassword model)
        {
            (bool isValid, string msg) = model.IsValid();
            if (!isValid)
            {
                return(Resp.Fault(Resp.NONE, msg));
            }

            using var db = new YGBContext();
            DB.Tables.User user = await db.Users.FirstOrDefaultAsync(u => u.Id == Id);

            if (user is null)
            {
                return(Resp.NeedLogin(Resp.NONE, "请重新登录"));
            }
            if (!user.Password.Equals(model.OldPassword, StringComparison.OrdinalIgnoreCase))
            {
                return(Resp.Fault(Resp.NONE, "旧密码有误"));
            }
            if (user.Password.Equals(model.NewPassword, StringComparison.OrdinalIgnoreCase))
            {
                return(Resp.Fault(Resp.NONE, "新密码不能和旧密码相同"));
            }
            user.Password = model.NewPassword;
            int changeCount = await db.SaveChangesAsync();

            if (changeCount == 1)
            {
                return(Resp.Success(Resp.NONE));
            }
            return(Resp.Fault(Resp.NONE, "修改失败"));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 登出
        /// </summary>
        public async Task <Resp> Logout()
        {
            using var db = new MyForContext();

            DB.Tables.Account account = await db.Accounts.FirstOrDefaultAsync(a => a.Id == Id);

            if (account is null)
            {
                return(Resp.NeedLogin(Resp.NONE, "请重新登录"));
            }

            account.Token = Guid.NewGuid();
            int suc = await db.SaveChangesAsync();

            if (suc == 1)
            {
                return(Resp.Success(Resp.NONE, "成功"));
            }
            return(Resp.Fault(Resp.NONE, "失败"));
        }
Exemplo n.º 3
0
 public ActionResult _401()
 {
     return(Pack(Resp.NeedLogin(null, "请重新登录")));
 }
Exemplo n.º 4
0
 public ActionResult NotFound401()
 {
     return(Pack(Resp.NeedLogin(Resp.NONE, "请重新登录")));
 }