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 }));
}
}
}
}