public async Task <IActionResult> OnGetAsync(string returnUrl = null) { if (!string.IsNullOrEmpty(ErrorMessage)) { ModelState.AddModelError(string.Empty, ErrorMessage); } await BuildLoginViewModelAsync(returnUrl); if (IsExternalLoginOnly) { var provider = ExternalLogins.First().Name; // Request a redirect to the external login provider. var redirectUrl = Url.Page("./ExternalLogin", pageHandler: "Callback", values: new { returnUrl }); var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl); return(new ChallengeResult(provider, properties)); } // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); ReturnUrl = returnUrl; return(Page()); }
public void RemoveExternalLogin(string loginProvider) { var externalLogin = ExternalLogins.FirstOrDefault(c => c.LoginProvider == loginProvider); Guard.ArgumentIsNull <ArgumentNullException>(externalLogin, nameof(loginProvider), "Login provider is not exist"); ExternalLogins.Remove(externalLogin); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Action("Index", "Dashboard", new { Area = "Portal" }); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); GoogleLogin = ExternalLogins.FirstOrDefault(x => x.Name == "Google"); if (ModelState.IsValid) { // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await _signInManager.PasswordSignInAsync(Input.UserName ?? string.Empty, Input.Password ?? string.Empty, Input.RememberMe, lockoutOnFailure : true); if (result.Succeeded) { _logger.LogInformation("User logged in."); return(LocalRedirect(returnUrl)); } if (result.RequiresTwoFactor) { return(RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, Input.RememberMe })); } if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); return(RedirectToPage("./Lockout")); } else { ModelState.AddModelError(string.Empty, _localizer["Wrong username or password!"]); return(Page()); } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task OnGetAsync(Uri returnUrl = null) { if (!string.IsNullOrEmpty(ErrorMessage)) { ModelState.AddModelError(string.Empty, ErrorMessage); } returnUrl ??= new Uri("~/"); // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme) .ConfigureAwait(false); ExternalLogins.AddRange((await _signInManager.GetExternalAuthenticationSchemesAsync() .ConfigureAwait(false)).ToList()); ReturnUrl = returnUrl; }
public CustomerExternalLogin AddExternalLogin(CustomerExternalLoginAddCommand command) { if (ExternalLogins == null) { ExternalLogins = new List <CustomerExternalLogin>(); } if (ExternalLogins.Any( p => p.LoginProvider == command.LoginProvider && p.ProviderKey == command.ProviderKey)) { return(null); } CustomerExternalLogin customerExternalLogin = new CustomerExternalLogin(command.LoginProvider, command.ProviderKey, command.ProviderDisplayName, command.CustomerId, command.Info); ExternalLogins.Add(customerExternalLogin); Version = command.Version; return(customerExternalLogin); }
public async Task OnGetAsync(string returnUrl = null) { if (!string.IsNullOrEmpty(ErrorMessage)) { ModelState.AddModelError(string.Empty, ErrorMessage); } returnUrl = returnUrl ?? Url.Content("~/"); // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); GoogleLogin = ExternalLogins.FirstOrDefault(x => x.Name == "Google"); ReturnUrl = returnUrl; }
public async Task <IActionResult> OnGetAsync(string returnUrl = null) { if (!string.IsNullOrEmpty(ErrorMessage)) { ModelState.AddModelError(string.Empty, ErrorMessage); } // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); ReturnUrl = returnUrl; var context = await _interaction.GetAuthorizationContextAsync(returnUrl); if (context?.IdP != null && ExternalLogins.Any(p => string.Equals(p.Name, context.IdP, StringComparison.InvariantCultureIgnoreCase))) { return(RedirectToPage("./ExternalLogin", new { LoginProvider = context.IdP, ProviderKey = returnUrl })); } return(Page()); }
public User() { Roles = new Roles(); Claims = new Claims(); Logins = new ExternalLogins(); }
public void AddExternalLogin(string loginProvider, string providerkey) { ExternalLogins.Add(new ExternalLogin(this.Id, loginProvider, providerkey)); }