Multi-tenant ASP.NET Core 6 - Handling missing tenants
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Handling missing tenants
What to do when multi-tenant application gets request and it cannot find the tenant? Should it crash? I think the polite way is to redirect user to some page that tells what happened and perhaps gives user some guidance about how to get help or how to get started. For this let's create missing tenant middleware that redirect user to some informative page.
We start with defining tenant and tenant provider with its interface. Notice that tenant provider in this example returns null. It means that tenant was not found.
public class Tenant
{
public Guid Id { get; set; }
public string Name { get; set; }
public string HostName { get; set; }
// other tenant settings
}
public interface ITenantProvider
{
Tenant GetTenant();
}
public class DummyTenantProvider : ITenantProvider
{
public Tenant GetTenant()
{
return null;
}
}
Missing tenant middleware
Here is the middleware that is plugged to request processing pipeline. As tenant is not found then demor runner is redirected to example.com page automatically.
References
- Handling missing tenants in ASP.NET Core (Gunnar Peipman)