public ActionResult PostRecovery([FromHeader(Name = "Recovery-Code")] Guid recoveryCode) { byte[] tokenData = new byte[256]; Rng.GetBytes(tokenData); string secretToken = Convert.ToBase64String(tokenData); if (ApplicationStateAccess.TryGetAccountDevice(recoveryCode, out var existingAccountDevice) && ApplicationStateAccess.TryGetAccount(existingAccountDevice, out var existingAccount)) { var newAccountDevice = new AccountDevice(existingAccountDevice.DeviceId, secretToken, Guid.NewGuid()); var registrationResponseDto = new RegistrationResponseDto { DeviceId = newAccountDevice.DeviceId, RecoveryCode = newAccountDevice.RecoveryCode, SecretToken = newAccountDevice.SecretToken, InitialState = existingAccount.SyncStates.First() }; existingAccount.Devices.Add(newAccountDevice); existingAccount.Devices.Remove(existingAccountDevice); Console.WriteLine($"Recovered device from recovery code {recoveryCode}. New AccountDevice DeviceId:{newAccountDevice.DeviceId} RecoveryCode:{newAccountDevice.RecoveryCode} SecretToken:{newAccountDevice.SecretToken}"); return(new JsonResult(registrationResponseDto)); } return(BadRequest($"This recovery code does not match to any known account device")); }
public async Task Register() { ShowRegistrationErros = false; var result = await AuthenticationService.RegisterUser(_userForRegistration); Console.WriteLine("The result was " + result.IsSuccessStatusCode + "ful."); if (!result.IsSuccessStatusCode) { try { var response = await result.Content.ReadAsStringAsync(); RegistrationResponseDto registrationResponseDto = JsonSerializer.Deserialize <RegistrationResponseDto>(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); ErrorMessage = registrationResponseDto.Message; } catch (Exception e) { ErrorMessage = "Ledsen, men ditt internet är nere :(\nKom tillbaka när nätet är uppe."; Console.WriteLine(e.Message); } Console.WriteLine("Now the error message will appear."); ShowRegistrationErros = true; } else { Console.WriteLine("De som gör de"); NavigationManager.NavigateTo("/"); } }
public ActionResult Post([FromBody] StateResponseDto stateResponseChange, [FromHeader(Name = "Device-ID")] Guid deviceId, [FromHeader(Name = "Recovery-Code")] Guid recoveryCode) { stateResponseChange.Guid = stateResponseChange.Guid; stateResponseChange.VersionNumber = 1; byte[] tokenData = new byte[256]; Rng.GetBytes(tokenData); string secretToken = Convert.ToBase64String(tokenData); var newDevice = new AccountDevice(deviceId, secretToken, recoveryCode); var newAccount = new Account(Guid.NewGuid(), new List <AccountDevice>(new[] { newDevice }), stateResponseChange); ApplicationStateAccess.RegisterNewAccount(newDevice, newAccount, recoveryCode); var registrationResponseDto = new RegistrationResponseDto { DeviceId = deviceId, RecoveryCode = recoveryCode, SecretToken = secretToken, InitialState = stateResponseChange }; Console.WriteLine($"Register new device. DeviceId:{deviceId} RecoveryCode:{recoveryCode} SecretToken:{secretToken}"); return(new JsonResult(registrationResponseDto)); }
public RegistrationResponseDto RegisterUser(RegistrationRequestDto registrationRequestDto) { RegistrationResponseDto registrationResponseDto; try { registrationResponseDto = businessAuthentication.RegisterUser(registrationRequestDto); registrationResponseDto.ServiceResponseStatus = 1; } catch (SSException applicationException) { registrationResponseDto = new RegistrationResponseDto { ServiceResponseStatus = 0, ErrorMessage = applicationException.Message, ErrorCode = applicationException.ExceptionCode }; } catch (Exception exception) { registrationResponseDto = new RegistrationResponseDto { ServiceResponseStatus = 0, ErrorCode = ExceptionAttributes.ExceptionCodes.InternalServerError, ErrorMessage = exception.Message }; } return(registrationResponseDto); }
public async Task <RegistrationResponseDto> Registration(UserForRegistrationDto newUser) { var result = new RegistrationResponseDto(); var user = new IdentityUser { UserName = newUser.Email, Email = newUser.Email }; var createResult = await _userManager.CreateAsync(user, newUser.Password); result.IsSuccessfulRegistration = createResult.Succeeded; if (createResult.Succeeded) { if (_userManager.Options.SignIn.RequireConfirmedAccount) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); result.ConfirmCodeForSample = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); } } foreach (var error in createResult.Errors) { result.Errors = createResult.Errors.Select(c => c.Description).ToList(); } return(result); }
public ActionResult PostCode([FromHeader(Name = "Device-ID")] Guid deviceId, [FromHeader(Name = "Recovery-Code")] Guid recoveryCode, [FromHeader(Name = "Account-Code")] string accountCode) { byte[] tokenData = new byte[256]; Rng.GetBytes(tokenData); string secretToken = Convert.ToBase64String(tokenData); var accountDevice = new AccountDevice(deviceId, secretToken, recoveryCode); if (ApplicationStateAccess.TryAddAccountDevice(accountDevice, accountCode) && ApplicationStateAccess.TryGetAccount(accountDevice, out var account)) { var registrationResponseDto = new RegistrationResponseDto { DeviceId = accountDevice.DeviceId, RecoveryCode = accountDevice.RecoveryCode, SecretToken = accountDevice.SecretToken, InitialState = account.SyncStates.First() }; return(new JsonResult(registrationResponseDto)); } return(NotFound()); }
public RegistrationResponseDto RegisterUser(RegistrationRequestDto registrationRequestDto) { RegistrationResponseDto registrationResponseDto = new RegistrationResponseDto(); var keyNew = Helper.GeneratePassword(25); var password = Helper.EncodePassword(registrationRequestDto.UserPassword, keyNew); var cModel = new RegistrationCM { UserId = Guid.NewGuid(), LoginName = registrationRequestDto.LoginName, UserPassword = password, Email = registrationRequestDto.Email, PhoneNumber = registrationRequestDto.PhoneNumber, PasswordSalt = keyNew, IsActive = true, FirstName = registrationRequestDto.FirstName, LastName = registrationRequestDto.LastName, RoleId = registrationRequestDto.RoleId }; var response = authenticationRepository.UserRegistration(cModel); registrationResponseDto.RegisteredUserId = response.RegisteredUserId; return(registrationResponseDto); }