/// <summary> /// Registers the Entity Framework Core stores services in the DI container and /// configures OpenIddict to use the Entity Framework Core entities by default. /// </summary> /// <param name="builder">The services builder used by OpenIddict to register new services.</param> /// <remarks>This extension can be safely called multiple times.</remarks> /// <returns>The <see cref="OpenIddictEntityFrameworkCoreBuilder"/>.</returns> public static OpenIddictEntityFrameworkCoreBuilder UseEntityFrameworkCore(this OpenIddictCoreBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } // Since Entity Framework Core may be used with databases performing case-insensitive // or culture-sensitive comparisons, ensure the additional filtering logic is enforced // in case case-sensitive stores were registered before this extension was called. builder.Configure(options => options.DisableAdditionalFiltering = false); builder.SetDefaultApplicationEntity <OpenIddictEntityFrameworkCoreApplication>() .SetDefaultAuthorizationEntity <OpenIddictEntityFrameworkCoreAuthorization>() .SetDefaultScopeEntity <OpenIddictEntityFrameworkCoreScope>() .SetDefaultTokenEntity <OpenIddictEntityFrameworkCoreToken>(); builder.ReplaceApplicationStoreResolver <OpenIddictEntityFrameworkCoreApplicationStoreResolver>() .ReplaceAuthorizationStoreResolver <OpenIddictEntityFrameworkCoreAuthorizationStoreResolver>() .ReplaceScopeStoreResolver <OpenIddictEntityFrameworkCoreScopeStoreResolver>() .ReplaceTokenStoreResolver <OpenIddictEntityFrameworkCoreTokenStoreResolver>(); builder.Services.TryAddSingleton <OpenIddictEntityFrameworkCoreApplicationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIddictEntityFrameworkCoreAuthorizationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIddictEntityFrameworkCoreScopeStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIddictEntityFrameworkCoreTokenStoreResolver.TypeResolutionCache>(); builder.Services.TryAddScoped(typeof(OpenIddictEntityFrameworkCoreApplicationStore <, , , ,>)); builder.Services.TryAddScoped(typeof(OpenIddictEntityFrameworkCoreAuthorizationStore <, , , ,>)); builder.Services.TryAddScoped(typeof(OpenIddictEntityFrameworkCoreScopeStore <, ,>)); builder.Services.TryAddScoped(typeof(OpenIddictEntityFrameworkCoreTokenStore <, , , ,>)); return(new OpenIddictEntityFrameworkCoreBuilder(builder.Services)); }
public static OpenIddictCoreBuilder UseEpiInmemoryStore(this OpenIddictCoreBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.Configure(options => options.DisableAdditionalFiltering = false); builder.SetDefaultApplicationEntity <EpiOpenIdApplication>(); builder.SetDefaultScopeEntity <EpiOpenIdScope>(); builder.SetDefaultAuthorizationEntity <EpiOpenIdAuthorization>(); builder.SetDefaultTokenEntity <EpiOpenIdToken>(); builder.ReplaceApplicationStoreResolver <EpiOpenIdApplicationStoreResolver>(); builder.ReplaceScopeStoreResolver <EpiOpenIdScopeStoreResolver>(); builder.ReplaceAuthorizationStoreResolver <EpiOpenIdAuthorizationStoreResolver>(); builder.ReplaceTokenStoreResolver <EpiOpenIdTokenStoreResolver>(); builder.Services.TryAddSingleton <EpiOpenIdApplicationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <EpiOpenIdScopeStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <EpiOpenIdAuthorizationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <EpiOpenIdTokenStoreResolver.TypeResolutionCache>(); builder.Services.TryAddScoped(typeof(EpiOpenIdApplicationStore <>)); builder.Services.TryAddScoped(typeof(EpiOpenIdScopeStore <>)); builder.Services.TryAddScoped(typeof(EpiOpenIdAuthorizationStore <>)); builder.Services.TryAddScoped(typeof(EpiOpenIdTokenStore <>)); return(builder); }
public static OpenIddictCoreBuilder UseThreaxIdServerEf(this OpenIddictCoreBuilder builder, Action <Options> configure) { var options = new Options(); configure.Invoke(options); if (builder is null) { throw new ArgumentNullException(nameof(builder)); } // Since Entity Framework Core may be used with databases performing case-insensitive // or culture-sensitive comparisons, ensure the additional filtering logic is enforced // in case case-sensitive stores were registered before this extension was called. builder.Configure(options => options.DisableAdditionalFiltering = false); builder.SetDefaultApplicationEntity <Client>() .SetDefaultAuthorizationEntity <Authorization>() .SetDefaultScopeEntity <Scope>() .SetDefaultTokenEntity <Token>(); builder.ReplaceApplicationStoreResolver <ApplicationStoreResolver>() .ReplaceAuthorizationStoreResolver <AuthorizationStoreResolver>() .ReplaceScopeStoreResolver <ScopeStoreResolver>() .ReplaceTokenStoreResolver <TokenStoreResolver>(); builder.ReplaceApplicationManager(typeof(ThreaxOpenIddictApplicationManager <>)); builder.Services.TryAddScoped <ApplicationStore>(); builder.Services.TryAddScoped <AuthorizationStore>(); builder.Services.TryAddScoped <ScopeStore>(); builder.Services.TryAddScoped <TokenStore>(); builder.Services.AddDbContext <ConfigurationDbContext>(o => { options.SetupConfigurationDbContext.Invoke(o); }); builder.Services.AddDbContext <OperationDbContext>(o => { options.SetupOperationDbContext.Invoke(o); }); return(builder); }
public static OpenIddictCoreBuilder UseYesSql(this OpenIddictCoreBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } // Since the YesSql stores may be used with databases performing case-insensitive or // culture-sensitive comparisons, ensure the additional filtering logic is enforced // in case case-sensitive stores were registered before this extension was called. builder.Configure(options => options.DisableAdditionalFiltering = false); builder.SetDefaultApplicationEntity <OpenIdApplication>() .SetDefaultAuthorizationEntity <OpenIdAuthorization>() .SetDefaultScopeEntity <OpenIdScope>() .SetDefaultTokenEntity <OpenIdToken>(); builder.ReplaceApplicationStoreResolver <OpenIdApplicationStoreResolver>() .ReplaceAuthorizationStoreResolver <OpenIdAuthorizationStoreResolver>() .ReplaceScopeStoreResolver <OpenIdScopeStoreResolver>() .ReplaceTokenStoreResolver <OpenIdTokenStoreResolver>(); builder.Services.TryAddSingleton <OpenIdApplicationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIdAuthorizationStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIdScopeStoreResolver.TypeResolutionCache>(); builder.Services.TryAddSingleton <OpenIdTokenStoreResolver.TypeResolutionCache>(); builder.Services.TryAddScoped(typeof(OpenIdApplicationStore <>)); builder.Services.TryAddScoped(typeof(OpenIdAuthorizationStore <>)); builder.Services.TryAddScoped(typeof(OpenIdScopeStore <>)); builder.Services.TryAddScoped(typeof(OpenIdTokenStore <>)); builder.Services.TryAddEnumerable(new[] { ServiceDescriptor.Singleton <IIndexProvider, OpenIdApplicationIndexProvider>(), ServiceDescriptor.Singleton <IIndexProvider, OpenIdAuthorizationIndexProvider>(), ServiceDescriptor.Singleton <IIndexProvider, OpenIdScopeIndexProvider>(), ServiceDescriptor.Singleton <IIndexProvider, OpenIdTokenIndexProvider>() }); return(builder); }