31 lines
816 B
C#

namespace MarcoBMS.Services.Middleware
{
public class TenantMiddleware
{
private readonly RequestDelegate _next;
public TenantMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
if (context.User.Identity != null && context.User.Identity.IsAuthenticated)
{
var tenantId = context.User.FindFirst("tenantId")?.Value;
if (tenantId == null)
{
tenantId = Guid.Empty.ToString();
}
if (!string.IsNullOrEmpty(tenantId))
{
context.Items["TenantId"] = tenantId;
}
}
await _next(context);
}
}
}