public async Task ManageLogins()

in Source/WebApp-Service-Provider-DotNet/Controllers/ManageController.cs [159:181]


        public async Task<IActionResult> ManageLogins(ManageMessageId? message = null)
        {
            ViewData["StatusMessage"] =
                message == ManageMessageId.RemoveLoginSuccess ? "L'authentification externe a été supprimée."
                : message == ManageMessageId.AddLoginSuccess ? "L'authentification externe a été ajoutée."
                : message == ManageMessageId.Error ? "Une erreur est survenue."
                : "";
            var user = await GetCurrentUserAsync();
            if (user == null)
            {
                return View("Error");
            }
            var userLogins = await _userManager.GetLoginsAsync(user);
            var schemes = await _signInManager.GetExternalAuthenticationSchemesAsync();
            var availableProviders = schemes.Where(auth => userLogins.All(ul => auth.Name != ul.LoginProvider)).ToList();
            return View(new ManageLoginsViewModel
            {
                IsLinkedToFranceConnect = userLogins.Any(auth => auth.LoginProvider == FranceConnectConfiguration.ProviderScheme),
                CanRemoveExternalLogin = user.PasswordHash != null || userLogins.Count > 1,
                FranceConnectUserAccount = userLogins.FirstOrDefault(auth => auth.LoginProvider == FranceConnectConfiguration.ProviderScheme),
                FranceConnectProvider = availableProviders.FirstOrDefault(auth => auth.Name == FranceConnectConfiguration.ProviderScheme)
            });
        }