Exemple #1
0
        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));
 }
Exemple #4
0
 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));
 }