/// <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); } } }
/// <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); }
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); }
/// <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); }