public async Task <string> ChangePasswordAsync(UsrChangeUser passwords) { UsrAdmin user = new UsrAdmin(); try { user = await _resumeContext.UsrAdmins.Where(users => users.Password == passwords.oldValue).FirstOrDefaultAsync(); if (user == null) { return("Incorrect password"); } user.Password = passwords.newValue; user.TokenDateOfDeath = DateTime.Now; if (await _resumeContext.SaveChangesAsync() == 1) { return(null); } else { return("Fails save DB"); } } catch (Exception ex) { _logger.LogError(ex, "Fail get or set data of DB"); return("Fail get or set data of DB"); } }
public async Task <string> ChangeLoginAsync(UsrChangeUser logins) { UsrAdmin user = new UsrAdmin(); try { user = await _resumeContext.UsrAdmins.Where(users => users.Login == logins.oldValue).FirstOrDefaultAsync(); if (user == null) { return("Incorrect login"); } user.Login = logins.newValue; if (await _resumeContext.SaveChangesAsync() == 1) { return(null); } else { return("Fails save DB"); } } catch (Exception ex) { _logger.LogError(ex, "Fail get or set data of DB"); return("Fail get or set data of DB"); } }
public async Task <IActionResult> Auth(UsrAdmin user) { UsrDataShell result = await _userAuthentication.AuthenticationAsync(user); if (result.Error == null) { return(Ok(result.UsrData_)); } SetErrorHeaders(result); return(BadRequest()); }
public async Task <UsrAdmin> GetAdminUserAsync() { UsrAdmin user = new UsrAdmin(); try { user = await _resumeContext.UsrAdmins.FirstOrDefaultAsync(); } catch (Exception ex) { _logger.LogError(ex, "Fail get data of DB"); } return(user); }
public async Task <string> CheckTokenAsync(string token) { UsrAdmin user = await _dbOperations.GetAdminUserAsync(); if (user.Login == null) { return("Admin isn't be"); } Token trueToken = new Token(user.Login, user.TokenDateOfDeath.ToString(), user.Login + user.Password); if (token != trueToken.GetToken()) { return("Token invalid"); } if (user.TokenDateOfDeath < DateTime.Now) { return("Token is old"); } return(null); }
private bool InitializeAdmin() { try { var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); IConfiguration AppConfiguration = builder.Build(); IConfigurationSection adminOptions = AppConfiguration.GetSection("Admin"); if (adminOptions != null) { string adminLogin = adminOptions.GetSection("login").Value; string adminPassword = adminOptions.GetSection("password").Value; if (adminLogin == null || adminPassword == null) { _logger.LogError("Fail initialize login or password subsection in appsettings.json"); return(false); } if (_resumeContext.UsrAdmins.ToArray().Length == 0) { var admin = new UsrAdmin() { Login = adminLogin, Password = _authentication.GetHashString(adminPassword) }; _resumeContext.Add(admin); _resumeContext.SaveChanges(); } return(true); } else { _logger.LogError("Fail initialize admin section in appsettings.json"); return(false); } } catch (Exception ex) { _logger.LogError(ex, "Fail initialize admin"); return(false); } }
public async Task <UsrDataShell> AuthenticationAsync(UsrAdmin user) { UsrDataShell result = new UsrDataShell(); var hashPassword = await _dbOperations.GetUserHashPasswordAsync(user.Login); if (hashPassword == null) { result.Error = "User not found"; return(result); } if (hashPassword == "FAIL!") { result.Error = "Fail get data of DB"; return(result); } if (GetHashString(user.Password) != hashPassword) { result.Error = "Password incorrect"; return(result); } DateTime tokenDateOfDeath = DateTime.Now.AddHours(GetTokenLifetime()); bool saveToken = await _dbOperations.SetTokenDateOfDeathAsync(user.Login, tokenDateOfDeath); if (!saveToken) { result.Error = "Fail set data of DB"; return(result); } Token token = new Token(user.Login, tokenDateOfDeath.ToString(), user.Login + hashPassword); result.UsrData_ = new UsrAdmin() { TokenDateOfDeath = tokenDateOfDeath, Token = token.GetToken() }; return(result); }