Facebook
From Ample Giraffe, 6 Years ago, written in C#.
Embed
Download Paste or View Raw
Hits: 216
  1.         [HttpPost]
  2.         [AllowAnonymous]
  3.         [ValidateAntiForgeryToken]
  4.         public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
  5.         {
  6.             /*
  7.             if (!ModelState.IsValid)
  8.             {
  9.                 return View(model);
  10.             }
  11.             */
  12.             // Nie powoduje to liczenia niepowodzeń logowania w celu zablokowania konta
  13.             // Aby włączyć wyzwalanie blokady konta po określonej liczbie niepomyślnych prób wprowadzenia hasła, zmień ustawienie na shouldLockout: true
  14.             var user = await UserManager.FindByEmailAsync(model.Email);
  15.             var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
  16.        
  17.             var roles=await UserManager.GetRolesAsync(user.Id);
  18.  
  19.          
  20.             switch (result)
  21.             {
  22.                 case SignInStatus.Success:
  23.                     if (user.FieldInformation == false)
  24.                     {
  25.                         if (roles.Contains("PersonalTrainer"))
  26.                         {
  27.                             return RedirectToAction("Create", "PersonalTrainer", new { id = user.Id });
  28.                         }
  29.                         if (roles.Contains("Athlete"))
  30.                         {
  31.                             return RedirectToAction("Create", "Athlete", new { id = user.Id });
  32.                         }
  33.                     }
  34.                     return RedirectToLocal(returnUrl);
  35.                 case SignInStatus.LockedOut:
  36.                     return View("Lockout");
  37.                 case SignInStatus.RequiresVerification:
  38.                     return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
  39.                 case SignInStatus.Failure:
  40.                 default:
  41.                     ModelState.AddModelError("", "Nieprawidłowa próba logowania.");
  42.                     return View(model);
  43.             }
  44.         }