public async Task <IActionResult> OnPostAsync(string returnUrl = null) { if (!ModelState.IsValid) { return(Page()); } RecursoViewModel recurso = await _recursoGrpcService.AutenticarAsync(Login.Usuario, Login.Senha); if (recurso.Id == Guid.Empty) { ModelState.AddModelError(string.Empty, "Usuário ou senha inválidos."); return(Page()); } IEnumerable <Claim> claims = new[] { new Claim(ClaimTypes.PrimarySid, recurso.Id.ToString()), }; ClaimsPrincipal principal = ClaimsService.CreateClaimsPrincipal(claims); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, principal, new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddMinutes(_systemConfiguration.CookieExpires) }); return(RedirectToLocal(returnUrl)); }
public async Task <IActionResult> OnPostAsync(string?returnUrl = null) { try { if (!ModelState.IsValid) { return(Page()); } RecursoViewModel recurso = await _cpnucleoApiService.PostAsync <RecursoViewModel>("recurso", "auth", "", Auth); IEnumerable <Claim> claims = new[] { new Claim(ClaimTypes.PrimarySid, recurso.Id.ToString()), new Claim(ClaimTypes.Hash, recurso.Token) }; ClaimsPrincipal principal = ClaimsService.CreateClaimsPrincipal(claims); int.TryParse(_configuration["Cookie:Expires"], out int expiresUtc); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, principal, new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddMinutes(expiresUtc) }); return(RedirectToLocal(returnUrl)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return(Page()); } }