在 SaaS 与多律所/多企业应用中,租户数据隔离是绝对的安全红线。
BitzOrcas.Modern 采用环境上下文传播(Ambient Context) + 双 ORM 编译期全局查询过滤,确保开发者无需在业务代码中手工拼接 WHERE TenantId = @tenantId,由框架在 SQL 生成阶段自动注入。
8 步租户解析优先级链
双 ORM 编译期全局租户隔离
对所有继承 TenantAggregateRoot 且标记 [BitzTable] 的聚合根,双 ORM 适配器会自动挂载全局租户过滤器:
// 开发者编写的高层 LINQ / 仓储查询:var matters = await noteReadStore.SearchAsync(fields, paging, sort, cancellationToken);
// EF Core 与 SqlSugar 在底层实际生成的 SQL 语句 (自动追加租户隔离约束):// SELECT * FROM LegalMatterIntake// WHERE Status = 2 AND TenantId = 'lawfirm-alpha';[!IMPORTANT] 开发零心智负担:开发者在编写查询或新增数据时,无需手工给实体赋值
TenantId或添加 SQLWHERE条件,框架管道在实体落库与查询时全自动安全注入,从物理层面根绝跨租户越权(IDOR)漏洞。
总结
BitzOrcas.Modern 的多租户体系确保了:
- 8 步解析严密可靠:多端多场景平滑适配;
- 底层自动隔离:SQL 级别自动注入租户过滤,防止代码漏洞;
- 代客模拟沙箱受控:技术支持人员操作可追溯且写权限严格受限。