private ExternalIdentity MapToExternalIdentity(IEnumerable <Claim> claims) { var externalId = ExternalIdentity.FromClaims(claims); if (externalId != null && _externalClaimsFilter != null) { externalId.Claims = _externalClaimsFilter.Filter(externalId.Provider, externalId.Claims); } return(externalId); }
ExternalIdentity GetExternalIdentity(IEnumerable <Claim> claims) { if (claims == null || !claims.Any()) { return(null); } var subClaim = claims.FirstOrDefault(x => x.Type == Constants.ClaimTypes.Subject); if (subClaim == null) { subClaim = claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier); if (subClaim == null) { return(null); } } claims = claims.Except(new Claim[] { subClaim }); var idp = new IdentityProvider { Name = subClaim.Issuer }; if (this.externalClaimsFilter != null) { claims = externalClaimsFilter.Filter(idp, claims); } claims = claims ?? Enumerable.Empty <Claim>(); return(new ExternalIdentity { Provider = idp, ProviderId = subClaim.Value, Claims = claims }); }
public Task <AuthenticateResult> AuthenticateExternalAsync(ExternalIdentity externalUser, SignInMessage message) { externalUser.Claims = filter.Filter(externalUser.Provider, externalUser.Claims); return(inner.AuthenticateExternalAsync(externalUser, message)); }
public Task AuthenticateExternalAsync(ExternalAuthenticationContext context) { context.ExternalIdentity.Claims = filter.Filter(context.ExternalIdentity.Provider, context.ExternalIdentity.Claims); return(inner.AuthenticateExternalAsync(context)); }
public System.Threading.Tasks.Task <AuthenticateResult> AuthenticateExternalAsync(Models.ExternalIdentity externalUser) { externalUser.Claims = filter.Filter(externalUser.Provider, externalUser.Claims); return(inner.AuthenticateExternalAsync(externalUser)); }