Table of Contents

Class TenantValidationExtensions

Namespace
Compendium.Adapters.AspNetCore.Security
Assembly
Compendium.Adapters.AspNetCore.dll

Extension methods for configuring tenant validation.

public static class TenantValidationExtensions
Inheritance
TenantValidationExtensions
Inherited Members

Methods

AddTenantValidation(IServiceCollection, Action<TenantValidationMiddlewareOptions>?, Action<TenantConsistencyOptions>?)

Adds tenant validation services to the service collection. Includes tenant resolvers, consistency validator, and tenant context.

public static IServiceCollection AddTenantValidation(this IServiceCollection services, Action<TenantValidationMiddlewareOptions>? configureMiddleware = null, Action<TenantConsistencyOptions>? configureConsistency = null)

Parameters

services IServiceCollection

The service collection.

configureMiddleware Action<TenantValidationMiddlewareOptions>

Optional middleware configuration.

configureConsistency Action<TenantConsistencyOptions>

Optional consistency validation configuration.

Returns

IServiceCollection

The service collection for chaining.

AddTenantValidationWithInMemoryStore(IServiceCollection, params TenantInfo[])

Adds tenant validation with an in-memory tenant store. Useful for development and testing.

public static IServiceCollection AddTenantValidationWithInMemoryStore(this IServiceCollection services, params TenantInfo[] tenants)

Parameters

services IServiceCollection

The service collection.

tenants TenantInfo[]

Initial tenants to seed.

Returns

IServiceCollection

The service collection for chaining.

UseTenantValidation(IApplicationBuilder)

Uses the tenant validation middleware in the application pipeline. Should be registered after authentication but before authorization.

public static IApplicationBuilder UseTenantValidation(this IApplicationBuilder app)

Parameters

app IApplicationBuilder

The application builder.

Returns

IApplicationBuilder

The application builder for chaining.

Remarks

Typical pipeline order:

  1. UseAuthentication()
  2. UseTenantValidation() // This middleware
  3. UseAuthorization()
  4. MapControllers()