using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using RobotNet.IdentityServer.Data; using System.Security.Claims; namespace Microsoft.AspNetCore.Routing { internal static class IdentityComponentsEndpointRouteBuilderExtensions { // These endpoints are required by the Identity Razor components defined in the /Components/Account/Pages directory of this project. public static IEndpointConventionBuilder MapAdditionalIdentityEndpoints(this IEndpointRouteBuilder endpoints) { ArgumentNullException.ThrowIfNull(endpoints); var accountGroup = endpoints.MapGroup("/Account"); accountGroup.MapPost("/Logout", async ( ClaimsPrincipal user, SignInManager signInManager, [FromForm] string returnUrl) => { await signInManager.SignOutAsync(); return TypedResults.LocalRedirect($"~/{returnUrl}"); }); return accountGroup; } } }