コード例 #1
0
 /// <summary>
 /// Registers a lookup service provider to the registry
 /// </summary>
 /// <param name="referenceName"></param>
 /// <param name="provider"></param>
 public void RegisterLookupServiceProvider(
     Guid referenceName,
     IUserIdentityLookupServiceProvider provider)
 {
     lock (m_registeredServiceProvidersLock)
     {
         if (!m_registeredServiceProviders.ContainsKey(referenceName))
         {
             m_registeredServiceProviders.Add(referenceName, provider);
         }
     }
 }
コード例 #2
0
        /// <summary>
        /// Thread-safe gets a provider by its reference name
        /// </summary>
        /// <param name="referenceName"></param>
        /// <returns>The provider instance if it is registered; NULL otherwise</returns>
        public IUserIdentityLookupServiceProvider GetProvider(Guid referenceName)
        {
            IUserIdentityLookupServiceProvider provider = null;

            lock (m_registeredServiceProvidersLock)
            {
                if (m_registeredServiceProviders.ContainsKey(referenceName))
                {
                    provider = m_registeredServiceProviders[referenceName];
                }
            }

            return(provider);
        }
コード例 #3
0
        private bool LookupUserIdOnOneSide(RichIdentity userIdentity, IdentityLookupContext context, Guid ownerMigrationSourceId)
        {
            if (!m_lookupConfiguration.LookupIsEnabled)
            {
                return(true);
            }

            bool lookupSucceeded = false;

            Guid[] applicableProviderRefNames;
            lookupSucceeded = m_lookupConfiguration.TryGetConfiguredProviders(ownerMigrationSourceId, out applicableProviderRefNames);

            if (lookupSucceeded)
            {
                if (applicableProviderRefNames.Length == 0)
                {
                    // no specific set of lookup service providers is configured to be used for the subject Migration Source
                    // we default to use all of them
                    applicableProviderRefNames = m_lookupProviderRegistry.GetAllProviderReferenceNames();
                }

                foreach (Guid providerRefName in applicableProviderRefNames)
                {
                    IUserIdentityLookupServiceProvider provider = m_lookupProviderRegistry.GetProvider(providerRefName);
                    if (null != provider)
                    {
                        lookupSucceeded = provider.TryLookup(userIdentity, context);
                        if (lookupSucceeded)
                        {
                            break;
                        }
                    }
                    else
                    {
                        TraceManager.TraceWarning("Warning: cannot find User Id Lookup Service Provider (Reference name: '{0}')",
                                                  providerRefName.ToString());
                    }
                }
            }

            return(lookupSucceeded);
        }
コード例 #4
0
 /// <summary>
 /// Registers a lookup service provider.
 /// </summary>
 /// <param name="referenceName"></param>
 /// <param name="provider"></param>
 public void RegisterLookupServiceProvider(
     Guid referenceName,
     IUserIdentityLookupServiceProvider provider)
 {
     m_lookupProviderRegistry.RegisterLookupServiceProvider(referenceName, provider);
 }