示例#1
0
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(new RedirectResult("/Identity/Account/Login"));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
示例#3
0
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException(string.Format(Resources.ApplicationTexts.UnableToLoadUserWithId, userManager.GetUserId(User)));
            }

            CurrentLogins = await userManager.GetLoginsAsync(user);

            OtherLogins = (await signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member 'ExternalLoginsModel.StatusMessage'

#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member 'ExternalLoginsModel.OnGetAsync()'
        public async Task <IActionResult> OnGetAsync()
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member 'ExternalLoginsModel.OnGetAsync()'
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound(this.identityLocalizationService
                                .GetLocalizedHtmlString("USER_NOTFOUND", userManager.GetUserId(User))));
            }

            CurrentLogins = await userManager.GetLoginsAsync(user);

            OtherLogins = (await signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();

            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;

            return(Page());
        }
示例#6
0
        public async Task <IActionResult> OnGetAsync()
        {
            ViewData["HeaderImage"] = "/Img/nemuel-sereti-unsplash.jpg";
            ViewData["HeaderText"]  = "Account Management";

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID 'user.Id'."));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
示例#7
0
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(RedirectToPage("/Account/Errors/AccessDenied", new { Area = "Identity" }));
            }

            if (user.AccountType == 0)
            {
                return(RedirectToPage("Pricing"));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                          .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(Page());
        }
        public async Task <IActionResult> OnGetLinkLoginCallbackAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(new RedirectResult("/Identity/Account/Login"));
            }

            var info = await _signInManager.GetExternalLoginInfoAsync(user.Id);

            if (info == null)
            {
                throw new InvalidOperationException($"Unexpected error occurred loading external login info for user with ID '{user.Id}'.");
            }

            var result = await _userManager.AddLoginAsync(user, info);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                CurrentLogins = await _userManager.GetLoginsAsync(user);

                OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                              .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                              .ToList();
                ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
                return(Page());
            }

            // Clear the existing external cookie to ensure a clean login process
            await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

            StatusMessage = "The external login was added.";
            return(RedirectToPage());
        }
        public async Task <IActionResult> OnGet(ManageMessageId?message = null)
        {
            ViewData["StatusMessage"] =
                message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed."
                : message == ManageMessageId.AddLoginSuccess ? "The external login was added."
                : message == ManageMessageId.Error ? "An error has occurred."
                : "";

            var user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Redirect("~/Error"));
            }

            CurrentLogins = await _userManager.GetLoginsAsync(user);

            OtherLogins = _signInManager.GetExternalAuthenticationSchemes()
                          .Where(auth => CurrentLogins.All(ul => auth.AuthenticationScheme != ul.LoginProvider))
                          .ToList();
            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
            return(View());
        }
示例#10
0
    public async Task <IActionResult> OnGetAsync()
    {
        var user = await _userManager.GetUserAsync(User);

        if (user == null)
        {
            return(NotFound($"Unable to load user with ID 'user.Id'."));
        }

        CurrentLogins = await _userManager.GetLoginsAsync(user);

        var possibleOtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync())
                                  .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider))
                                  .ToList();

        GoogleLogin    = possibleOtherLogins.SingleOrDefault(x => x.Name == "Google");
        MicrosoftLogin = possibleOtherLogins.SingleOrDefault(x => x.Name == "Microsoft");
        TwitchLogin    = possibleOtherLogins.SingleOrDefault(x => x.Name == "Twitch");
        PatreonLogin   = possibleOtherLogins.SingleOrDefault(x => x.Name == "Patreon");
        DiscordLogin   = possibleOtherLogins.SingleOrDefault(x => x.Name == "Discord");

        ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;
        return(Page());
    }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await UserManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Não foi possível carregar o usuário com o ID '{ UserManager.GetUserId(User)}'.");
            }

            CurrentLogins = await UserManager.GetLoginsAsync(user);

            OtherLogins = (await SignInManager.GetExternalAuthenticationSchemesAsync()).Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider)).ToList();

            ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1;

            Is2FaEnabled = await UserManager.GetTwoFactorEnabledAsync(user);

            RecoveryCodesLeft = await UserManager.CountRecoveryCodesAsync(user);

            HasAuthenticator = await UserManager.GetAuthenticatorKeyAsync(user) != null;

            return(Page());
        }