using System.Linq; using System.Security.Claims; using Owin; using Sitecore.Abstractions; using Sitecore.Diagnostics; using Sitecore.Owin.Authentication.Configuration; using Sitecore.Owin.Pipelines.Initialize; using Custom.Owin.Authentication.Extensions; namespace Custom.Owin.Authentication.Samples.Pipelines.Initialize { public class ShowUserAuthType : InitializeProcessor { public ShowUserAuthType(BaseSiteContextFactory siteContextFactory, FederatedAuthenticationConfiguration federatedAuthenticationConfiguration) { this.FederatedAuthenticationConfiguration = federatedAuthenticationConfiguration; this.SiteContextFactory = siteContextFactory; } protected FederatedAuthenticationConfiguration FederatedAuthenticationConfiguration { get; } protected BaseSiteContextFactory SiteContextFactory { get; } public override void Process([Sitecore.Annotations.NotNull] InitializeArgs args) { Assert.ArgumentNotNull(args, nameof(args)); foreach (var virtualFolder in this.SiteContextFactory.GetSites().Select(site => site.VirtualFolder).Distinct()) { if (string.IsNullOrEmpty(virtualFolder)) { continue; } args.App.MapEx(virtualFolder + "user", builder => { builder.Run(async context => { string authenticationType = null; string identityProviderName = null; string claims = null; if (Sitecore.Context.User.Identity is ClaimsIdentity claimsIdentity) { authenticationType = claimsIdentity.AuthenticationType; identityProviderName = this.FederatedAuthenticationConfiguration.GetIdentityProvider(claimsIdentity)?.Name; claims = "
{claim.Type} | {claim.Value} |