Table of Contents

Class DapperResourceStore

Namespace
Fdyay.IdentityServer.Dapper.Stores
Assembly
Fdyay.IdentityServer.Dapper.dll

Dapper-backed resource store. Resources are persisted as JSON keyed by name.

public sealed class DapperResourceStore : IResourceStore
Inheritance
DapperResourceStore
Implements
Inherited Members

Constructors

DapperResourceStore(IDbConnectionFactory)

Creates a resource store over the IdentityResources, ApiScopes and ApiResources tables.

public DapperResourceStore(IDbConnectionFactory connectionFactory)

Parameters

connectionFactory IDbConnectionFactory

Opens a connection for each read.

Methods

FindApiResourcesByNameAsync(IEnumerable<string>, CancellationToken)

Gets API resources by resource name.

public Task<IEnumerable<ApiResource>> FindApiResourcesByNameAsync(IEnumerable<string> apiResourceNames, CancellationToken cancellationToken = default)

Parameters

apiResourceNames IEnumerable<string>
cancellationToken CancellationToken

Returns

Task<IEnumerable<ApiResource>>

Remarks

Reads the ApiResources rows whose Name is one of apiResourceNames. Names with no row are skipped, so a full miss is an empty sequence; an empty apiResourceNames returns one without opening a connection.

FindApiResourcesByScopeNameAsync(IEnumerable<string>, CancellationToken)

Gets API resources that claim any of the given scope names.

public Task<IEnumerable<ApiResource>> FindApiResourcesByScopeNameAsync(IEnumerable<string> scopeNames, CancellationToken cancellationToken = default)

Parameters

scopeNames IEnumerable<string>
cancellationToken CancellationToken

Returns

Task<IEnumerable<ApiResource>>

Remarks

Reads every ApiResources row and keeps those whose Scopes name any of scopeNames, compared ordinally — the scopes live only inside the JSON, so there is no column to filter on. No match is an empty sequence; an empty scopeNames returns one without opening a connection.

FindApiScopesByNameAsync(IEnumerable<string>, CancellationToken)

Gets API scopes by scope name.

public Task<IEnumerable<ApiScope>> FindApiScopesByNameAsync(IEnumerable<string> scopeNames, CancellationToken cancellationToken = default)

Parameters

scopeNames IEnumerable<string>
cancellationToken CancellationToken

Returns

Task<IEnumerable<ApiScope>>

Remarks

Reads the ApiScopes rows whose Name is one of scopeNames. Names with no row are skipped, so a full miss is an empty sequence; an empty scopeNames returns one without opening a connection.

FindIdentityResourcesByScopeNameAsync(IEnumerable<string>, CancellationToken)

Gets identity resources by scope name.

public Task<IEnumerable<IdentityResource>> FindIdentityResourcesByScopeNameAsync(IEnumerable<string> scopeNames, CancellationToken cancellationToken = default)

Parameters

scopeNames IEnumerable<string>
cancellationToken CancellationToken

Returns

Task<IEnumerable<IdentityResource>>

Remarks

Reads the IdentityResources rows whose Name is one of scopeNames. Names with no row are skipped, so a full miss is an empty sequence; an empty scopeNames returns one without opening a connection.

GetAllResourcesAsync(CancellationToken)

Gets all resources.

public Task<Resources> GetAllResourcesAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task<Resources>

Remarks

Reads every row of IdentityResources, ApiScopes and ApiResources on one connection. Empty tables give empty collections, never null.