以admin.net为例
如果集成到当前的项目内,需要考虑 devexpress report 得浏览请求时,当前来看,原框架是没拓展安全验证的例子 也就是没有加入token的例子,angular有. 所以后来想了个法子,前端内对报表请求的链接进行拦截,拦截后加入token验证就可以了.
devexpress vue report 有四次请求后端才完成一个报表打开.每次都有如图

authorization 本来是没有的.
admin.net后端 ,在setup内加入注入
services.AddDevExpressControls();
services.AddScoped<DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension, CustomReportStorageWebExtension>();
public class CustomReportStorageWebExtension : DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension,IDynamicApiController, ITransient {
private readonly SqlSugarRepository<使用租户表> _xxxRep;
public CustomReportStorageWebExtension(SqlSugarRepository<使用租户表> xxx)
{
xxx = xxx;
}
[ApiDescriptionSettings(Name = "GetData"), HttpGet]
public override byte[] GetData([FromQuery]string reportData)
多租户情况一定使用租户表注入,要不然获取的是主库对象.
前端不加token会提醒 用户登录过期 .没有token也就没法确认是哪个租户的表. 加了token还得在注入时注入租户的实体类表.注入系统的会是系统的.背后sqlsugar不会自动切换到租户的.changebase在此也失效.
技术交流qq群:143280841
浙公网安备 33010602011771号