Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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());
        }
Ejemplo n.º 8
0
 public User()
 {
     Roles  = new Roles();
     Claims = new Claims();
     Logins = new ExternalLogins();
 }
Ejemplo n.º 9
0
 public void AddExternalLogin(string loginProvider, string providerkey)
 {
     ExternalLogins.Add(new ExternalLogin(this.Id, loginProvider, providerkey));
 }