Beispiel #1
0
            private SecurityContextSecurityToken TryResolveSecurityContextToken(UniqueId contextId, UniqueId generation, string id, SecurityTokenResolver tokenResolver, out ISecurityContextSecurityTokenCache sctCache)
            {
                SecurityContextSecurityToken sourceToken = (SecurityContextSecurityToken)null;

                sctCache = (ISecurityContextSecurityTokenCache)null;
                if (tokenResolver is ISecurityContextSecurityTokenCache)
                {
                    sctCache    = (ISecurityContextSecurityTokenCache)tokenResolver;
                    sourceToken = sctCache.GetContext(contextId, generation);
                }
                else
                {
#if FEATURE_CORECLR
                    throw new NotImplementedException("AggregateSecurityHeaderTokenResolver not supported in .NET Core");
#else
                    if (tokenResolver is AggregateSecurityHeaderTokenResolver)
                    {
                        AggregateSecurityHeaderTokenResolver headerTokenResolver = tokenResolver as AggregateSecurityHeaderTokenResolver;
                        for (int index = 0; index < headerTokenResolver.TokenResolvers.Count; ++index)
                        {
                            ISecurityContextSecurityTokenCache tokenResolver1 = headerTokenResolver.TokenResolvers[index] as ISecurityContextSecurityTokenCache;
                            if (tokenResolver1 != null)
                            {
                                if (sctCache == null)
                                {
                                    sctCache = tokenResolver1;
                                }
                                sourceToken = tokenResolver1.GetContext(contextId, generation);
                                if (sourceToken != null)
                                {
                                    break;
                                }
                            }
                        }
                    }
#endif
                }

                if (sourceToken == null)
                {
                    return((SecurityContextSecurityToken)null);
                }
                if (sourceToken.Id == id)
                {
                    return(sourceToken);
                }
                return(new SecurityContextSecurityToken(sourceToken, id));
            }
Beispiel #2
0
            SecurityContextSecurityToken TryResolveSecurityContextToken(UniqueId contextId, UniqueId generation, string id, SecurityTokenResolver tokenResolver, out ISecurityContextSecurityTokenCache sctCache)
            {
                SecurityContextSecurityToken cachedSct = null;

                sctCache = null;
                if (tokenResolver is ISecurityContextSecurityTokenCache)
                {
                    sctCache  = ((ISecurityContextSecurityTokenCache)tokenResolver);
                    cachedSct = sctCache.GetContext(contextId, generation);
                }
                else if (tokenResolver is AggregateSecurityHeaderTokenResolver)
                {
                    // We will see if we have a ISecurityContextSecurityTokenCache in the
                    // AggregateTokenResolver. We will hold the reference to the first sctCache
                    // we find.
                    AggregateSecurityHeaderTokenResolver aggregateTokenResolve = tokenResolver as AggregateSecurityHeaderTokenResolver;
                    for (int i = 0; i < aggregateTokenResolve.TokenResolvers.Count; ++i)
                    {
                        ISecurityContextSecurityTokenCache oobTokenResolver = aggregateTokenResolve.TokenResolvers[i] as ISecurityContextSecurityTokenCache;
                        if (oobTokenResolver == null)
                        {
                            continue;
                        }
                        if (sctCache == null)
                        {
                            sctCache = oobTokenResolver;
                        }
                        cachedSct = oobTokenResolver.GetContext(contextId, generation);
                        if (cachedSct != null)
                        {
                            break;
                        }
                    }
                }
                if (cachedSct == null)
                {
                    return(null);
                }
                else if (cachedSct.Id == id)
                {
                    return(cachedSct);
                }
                else
                {
                    return(new SecurityContextSecurityToken(cachedSct, id));
                }
            }
            private SecurityContextSecurityToken TryResolveSecurityContextToken(UniqueId contextId, UniqueId generation, string id, SecurityTokenResolver tokenResolver, out ISecurityContextSecurityTokenCache sctCache)
            {
                SecurityContextSecurityToken sourceToken = null;

                sctCache = null;
                if (tokenResolver is ISecurityContextSecurityTokenCache)
                {
                    sctCache    = (ISecurityContextSecurityTokenCache)tokenResolver;
                    sourceToken = sctCache.GetContext(contextId, generation);
                }
                else if (tokenResolver is AggregateTokenResolver)
                {
                    AggregateTokenResolver resolver = tokenResolver as AggregateTokenResolver;
                    for (int i = 0; i < resolver.OutOfBandTokenResolver.Count; i++)
                    {
                        ISecurityContextSecurityTokenCache cache = resolver.OutOfBandTokenResolver[i] as ISecurityContextSecurityTokenCache;
                        if (cache != null)
                        {
                            if (sctCache == null)
                            {
                                sctCache = cache;
                            }
                            sourceToken = cache.GetContext(contextId, generation);
                            if (sourceToken != null)
                            {
                                break;
                            }
                        }
                    }
                }
                if (sourceToken == null)
                {
                    return(null);
                }
                if (sourceToken.Id == id)
                {
                    return(sourceToken);
                }
                return(new SecurityContextSecurityToken(sourceToken, id));
            }
 SecurityContextSecurityToken TryResolveSecurityContextToken(UniqueId contextId, UniqueId generation, string id, SecurityTokenResolver tokenResolver, out ISecurityContextSecurityTokenCache sctCache)
 {
     SecurityContextSecurityToken cachedSct = null;
     sctCache = null;
     if (tokenResolver is ISecurityContextSecurityTokenCache)
     {
         sctCache = ((ISecurityContextSecurityTokenCache)tokenResolver);
         cachedSct = sctCache.GetContext(contextId, generation);
     }
     else if (tokenResolver is AggregateSecurityHeaderTokenResolver)
     {
         // We will see if we have a ISecurityContextSecurityTokenCache in the 
         // AggregateTokenResolver. We will hold the reference to the first sctCache
         // we find.
         AggregateSecurityHeaderTokenResolver aggregateTokenResolve = tokenResolver as AggregateSecurityHeaderTokenResolver;
         for (int i = 0; i < aggregateTokenResolve.TokenResolvers.Count; ++i)
         {
             ISecurityContextSecurityTokenCache oobTokenResolver = aggregateTokenResolve.TokenResolvers[i] as ISecurityContextSecurityTokenCache;
             if (oobTokenResolver == null)
             {
                 continue;
             }
             if (sctCache == null)
             {
                 sctCache = oobTokenResolver;
             }
             cachedSct = oobTokenResolver.GetContext(contextId, generation);
             if (cachedSct != null)
             {
                 break;
             }
         }
     }
     if (cachedSct == null)
     {
         return null;
     }
     else if (cachedSct.Id == id)
     {
         return cachedSct;
     }
     else
     {
         return new SecurityContextSecurityToken(cachedSct, id);
     }
 }
 private SecurityContextSecurityToken TryResolveSecurityContextToken(UniqueId contextId, UniqueId generation, string id, SecurityTokenResolver tokenResolver, out ISecurityContextSecurityTokenCache sctCache)
 {
     throw new NotImplementedException();
 }