public async Task <ActionResult <OkMsg> > ChangePassword(ResetPasswordByUserResource resetPasswordByUserResource) { var user = await _linUserRepository.GetDetailAsync(CurrentUser.Id); var encryptPassword = Pbkdf2Encrypt.EncryptPassword(resetPasswordByUserResource.OldPassword); if (user !.Password != encryptPassword) { throw new ForbiddenException { ErrorCode = ResultCode.UserPasswordErrorCode }; } _linUserRepository.ChangePassword(user !, resetPasswordByUserResource.Password); if (!await UnitOfWork.SaveAsync()) { throw new Exception("Save Failed!"); } return(Ok(new OkMsg { Msg = "密码修改成功" })); }
public async Task <LinUser?> Verify(string username, string password) { var query = _linContext.LinUsers .AsQueryable(); var encryptPassword = Pbkdf2Encrypt.EncryptPassword(password); query = query.Where(u => u.Username == username && u.Password == encryptPassword); var user = await query.SingleOrDefaultAsync(); return(user); }
public static async Task SeedAsync(LinContext linContext, ILoggerFactory loggerFactory, int retry = 0) { var retryForAvailability = retry; try { // TODO: Only run this if using a real database // linContext.Database.Migrate(); if (!linContext.LinUsers.Any()) { linContext.LinUsers.Add( new LinUser { Username = "******", Email = "*****@*****.**", Password = Pbkdf2Encrypt.EncryptPassword("123456"), Admin = (short)UserAdmin.Admin, Active = (short)UserActive.Active } ); await linContext.SaveChangesAsync(); } } catch (Exception ex) { if (retryForAvailability < 10) { retryForAvailability++; var logger = loggerFactory.CreateLogger <LinContextSeed>(); logger.LogError(ex.Message); await SeedAsync(linContext, loggerFactory, retryForAvailability); } } }
public void ResetPassword(LinUser user, string password) { user.Password = Pbkdf2Encrypt.EncryptPassword(password); _linContext.Update(user); }