diff --git a/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HeaderTenantResolver.cs b/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HeaderTenantResolver.cs index 4f71e83102..5b6ffe6f05 100644 --- a/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HeaderTenantResolver.cs +++ b/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/HeaderTenantResolver.cs @@ -1,5 +1,7 @@ using System.Linq; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; using Volo.Abp.MultiTenancy; using Volo.ExtensionMethods.Collections.Generic; @@ -9,13 +11,14 @@ namespace Volo.Abp.AspNetCore.MultiTenancy { protected override string GetTenantIdOrNameFromHttpContextOrNull(ITenantResolveContext context, HttpContext httpContext) { - //TODO: Get first one if provided multiple values and write a log if (httpContext.Request.Headers.IsNullOrEmpty()) { return null; } - var tenantIdHeader = httpContext.Request.Headers[context.GetAspNetCoreMultiTenancyOptions().TenantIdKey]; + var tenantIdKey = context.GetAspNetCoreMultiTenancyOptions().TenantIdKey; + + var tenantIdHeader = httpContext.Request.Headers[tenantIdKey]; if (tenantIdHeader == string.Empty || tenantIdHeader.Count < 1) { return null; @@ -23,7 +26,9 @@ namespace Volo.Abp.AspNetCore.MultiTenancy if (tenantIdHeader.Count > 1) { - + context.ServiceProvider.GetRequiredService>().LogWarning( + $"HTTP request includes more than one {tenantIdKey} header value. First one will be used. All of them: {tenantIdHeader.JoinAsString(", ")}" + ); } return tenantIdHeader.First();