コード例 #1
0
 public async Task <IActionResult> Login(Users model)
 {
     if (ModelState.IsValid)
     {
         SHA512Managed sha  = new SHA512Managed();
         string        hash = System.Text.Encoding.UTF8.GetString(sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(model.Password)));
         Users         user = AppDbContext.db.Users.FirstOrDefault(u => u.Email == model.Email && u.Password == hash);
         if (user != null)
         {
             byte        pass = 0;
             Athletes    a    = AppDbContext.db.Athletes.FirstOrDefault(u => u.Id == user);
             Trainers    t    = AppDbContext.db.Trainers.FirstOrDefault(u => u.User == user);
             RDSUWorkers r    = AppDbContext.db.RDSUWorkers.FirstOrDefault(u => u.User == user);
             if (a != null && a.Status >= 0)
             {
                 pass &= 0b00000001;
             }
             if (t != null && t.Status)
             {
                 pass &= 0b00000010;
             }
             if (r != null && r.Status)
             {
                 pass &= 0b00000100;
             }
             return(Ok(new { token = GenerateJWT(user, pass) }));
         }
         ModelState.AddModelError("", "Некорректные логин и(или) пароль"); // : проверка логина и пароля отдельно
     }
     return(UnprocessableEntity());
 }
コード例 #2
0
        public async Task <IActionResult> Register(string Email)
        {
            if (ModelState.IsValid)
            {
                Users  user     = AppDbContext.db.Users.FirstOrDefault(u => u.Email == Email);
                string password = "";
                if (user == null)
                {
                    Random random = new Random();
                    int    count  = random.Next(4, 10);
                    for (int i = 0; i < count; i++)
                    {
                        password += (char)random.Next(30, 100);
                    }
                    SHA512Managed sha  = new SHA512Managed();
                    string        hash = Encoding.UTF8.GetString(sha.ComputeHash(Encoding.UTF8.GetBytes(password)));
                    user = new Users {
                        Email = Email, Status = true, Password = hash
                    };
                    AppDbContext.db.Users.Add(user);
                }
                RDSUWorkers worker = AppDbContext.db.RDSUWorkers.FirstOrDefault(u => u.User == user);
                if (worker != null)
                {
                    AppDbContext.db.RDSUWorkers.Add(new RDSUWorkers {
                        Status = true, User = user
                    });
                    UsersController.PasswordMessage(Email, password);
                    await AppDbContext.db.SaveChangesAsync();

                    return(Ok());
                }
                else
                {
                    return(BadRequest());
                }
            }
            return(UnprocessableEntity());
        }