コード例 #1
0
        public async Task <ActionResult <UserKundenDto> > Register2Async([FromBody] UserKundenDto userKunde)
        {
            try
            {
                await _authService.CreateUserKunde(userKunde, _context);

                return(Ok(userKunde));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new { Message = e.Message, Details = e.InnerException?.Message }));
            }
        }
コード例 #2
0
        /// <summary>
        /// Meldet den User an der Adresse (baseUrl)/user/register2 an und setzt den Token als
        /// Default Request Header für zukünftige Anfragen.
        /// </summary>
        /// <param name="user">Benutzer, der registriert werden soll.</param>
        /// <returns>Userobjekt mit Token wenn erfolgreich, null bei ungültigen Daten.</returns>
        public async Task <bool> TryRegisterAsync(UserKundenDto user)
        {
            try
            {
                await SendAsync <UserDto>(HttpMethod.Post, "user/register2", user);

                return(true);
            }
            catch (ServiceException e) when(e.HttpStatusCode == (int)HttpStatusCode.Unauthorized)
            {
                return(false);
            }
        }
コード例 #3
0
        /// <summary>
        /// Erstellt einen neuen Benutzer in der Datenbank. Dafür wird ein Salt generiert und der
        /// Hash des Passwortes berechnet.

        /// </summary>
        /// <param name="credentials"></param>
        /// <returns></returns>
        public async Task <User> CreateUserKunde(UserKundenDto credentials, PureFitDbContext con)
        {
            string salt = GenerateRandom();
            // Den neuen Userdatensatz erstellen
            Kunde newKunde = new Kunde
            {
                K_Vorname        = credentials.Vorname,
                K_Zuname         = credentials.Zuname,
                K_Geschlecht     = credentials.Geschlecht,
                K_GebDatum       = Encoding.ASCII.GetBytes(credentials.GebDatum),
                K_Gewicht        = Encoding.ASCII.GetBytes(credentials.Gewicht),
                K_Groesse        = Encoding.ASCII.GetBytes(credentials.Groesse),
                K_TelefonNr      = credentials.TelefonNr,
                K_Email          = credentials.Email,
                K_Trainingslevel = con.Trainingslevel.Where(w => w.tr_levelname == credentials.Trainingslevel).Select(s => s.tr_levelNr).FirstOrDefault(),
                K_Nr             = null
            };

            con.Entry(newKunde).State = Microsoft.EntityFrameworkCore.EntityState.Added;
            await con.SaveChangesAsync();

            User newUser = new User
            {
                U_Name     = credentials.Username,
                U_Salt     = salt,
                U_Hash     = CalculateHash(credentials.Password, salt),
                U_Kunde_Nr = newKunde.K_Nr,
                U_Role     = "Kunde",  //Alle die sich registrieren sind Kunden und keine Admins zum bearbeiten
                U_ID       = null      //ID muss zuerst auf null gesetzt werden, weil db sonst nicht erkennt, dass AutoIncrement gesetzt werden soll!
            };

            con.Entry(newUser).State = Microsoft.EntityFrameworkCore.EntityState.Added;
            await con.SaveChangesAsync();

            return(newUser);
        }
コード例 #4
0
        public async Task <ActionResult <User> > RegisterKundenUser(UserKundenDto userKunde)
        {
            await _authService.CreateUserKunde(userKunde, _context);

            return(Ok(userKunde));
        }