public async Task RemoveLogin()

in Source/WebApp-Service-Provider-DotNet/Controllers/ManageController.cs [65:88]


        public async Task RemoveLogin(RemoveLoginViewModel account)
        {
            ManageMessageId? message = ManageMessageId.Error;
            var user = await GetCurrentUserAsync();
            if (user != null)
            {
                bool useExternalLogin = User.HasClaim(ClaimTypes.AuthenticationMethod, FranceConnectConfiguration.ProviderScheme);
                var result = await _userManager.RemoveLoginAsync(user, account.LoginProvider, account.ProviderKey);
                if (result.Succeeded)
                {
                    await _signInManager.RefreshSignInAsync(user);
                    if (useExternalLogin)
                    {
                        string postLogoutRedirectUri = CreateUri(nameof(ManageLogins));
                        await HttpContext.SignOutAsync(FranceConnectConfiguration.ProviderScheme, new AuthenticationProperties { RedirectUri = postLogoutRedirectUri });
                    }
                    else
                    {
                        message = ManageMessageId.RemoveLoginSuccess;
                        Response.Redirect(Url.Action(nameof(ManageLogins), new { Message = message }));
                    }
                }
            }
        }