コード例 #1
0
        public IActionResult Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = _customerRepository.Authenticate(model.Email, model.Password);

                if (user == null)
                {
                    //ViewData["messageError"] = _localizer["InvalidCredentials"].Value;

                    return(View(model));
                }

                if (!user.Active)
                {
                    //ViewData["messageError"] = _localizer["DisabledUser"].Value;

                    return(View(model));
                }

                var authProperties = new AuthenticationProperties
                {
                    ExpiresUtc  = DateTimeOffset.UtcNow.AddDays(1),
                    RedirectUri = Url.Action("Index", "Home")
                };

                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(user.FirstName)),
                    //new Claim(ClaimTypes.Name, model.Email.Split('@').First()),
                    new Claim(ClaimTypes.Email, model.Email),
                    new Claim(ClaimTypes.Role, user.AccessLevel.Description),  //user.Cargo.Nome
                };

                var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

                HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties).Wait();

                if (!string.IsNullOrWhiteSpace(model.ReturnUrl) && Url.IsLocalUrl(model.ReturnUrl))
                {
                    return(Redirect(model.ReturnUrl));
                }

                return(RedirectToAction("Index", "Home"));
            }

            return(View(model));
        }
コード例 #2
0
 public CustomerResponse Authenticate([FromBody] Login login)
 {
     return(repo.Authenticate(login));
 }