注入 进行全局的异常日志收集、执行操作日志、参数验证,支持简体中文、繁体中文、粤语、日语、法语、英语.services.ExceptionSetup();// 注入 全局错误日志处 services.ExceptionSetup(ExceptionLog actionOptions);// 注入 全局错误日志处 services.ExceptionSetup(builder.Configuration.GetSection("AopOption:ExceptionLog"));// 注入 全局错误日志处 services.RequestActionSetup();// 注入 请求日志拦截 [执行操作日志、参数验证 ] services.RequestActionSetup(RequestLog actionOptions);// 注入 请求日志拦截 [执行操作日志、参数验证 ] services.RequestActionSetup(builder.Configuration.GetSection("AopOption:RequestLog"));// 注入 请求日志拦截 [执行操作日志、参数验证 ] services.ResourceSetup();//对资源型信息进行过滤 services.ResultSetup();//对结果进行统一 services.ApISafeSetup(AppSign actionOptions);//接口安全校验 services.ApISafeSetup(builder.Configuration.GetSection("AopOption:AppSign"));//接口安全校验 services.ApISignSetup(AppSign actionOptions);//签名验证 ( appKey + signKey + timeStamp + data ); services.ApISignSetup(builder.Configuration.GetSection("AopOption:AppSign"));//签名验证 ( appKey + signKey + timeStamp + data ); services.AddValidateSetup();//模型校验 services.AddUiFilesZipSetup();//将前端UI压缩文件进行解压 不进行接口安全校验 -> NonAplSafeAttribute 不签名验证 -> NonAplSignAttribute 不进行全局的异常日志收集 -> NonExceptionAttribute 不对资源型信息进行过滤 -> NonResourceAttribute 不对结果进行统一 -> NonRestfulResultAttribute
$ dotnet add package RuoVea.ExFilter注入 进行全局的异常日志收集、执行操作日志、参数验证、对资源型信息进行过滤、对结果进行统一、接口安全校验、签名验证 MD5 ( appKey + signKey + timeStamp + data );支持简体中文、繁体中文、粤语、日语、法语、英语.
注入 进行全局的异常日志收集、执行操作日志、参数验证
builder.Services.ExceptionSetup();// 注入 全局错误日志
builder.Services.ExceptionSetup(ExceptionLog actionOptions);// 注入 全局错误日志
builder.Services.ExceptionSetup(builder.Configuration.GetSection("AopOption:ExceptionLog"));// 注入 全局错误日志
builder.Services.RequestActionSetup();// 注入 请求日志拦截 [执行操作日志、参数验证 ]
builder.Services.RequestActionSetup(RequestLog actionOptions);// 注入 请求日志拦截 [执行操作日志、参数验证 ]
builder.Services.RequestActionSetup(builder.Configuration.GetSection("AopOption:RequestLog"));// 注入 请求日志拦截 [执行操作日志、参数验证 ]
builder.Services.ResourceSetup();//对资源型信息进行过滤
builder.Services.ResultSetup();//对结果进行统一
builder.Services.ApISafeSetup(AppSign actionOptions);//接口安全校验
builder.Services.ApISafeSetup(builder.Configuration.GetSection("AopOption:AppSign"));//接口安全校验
builder.Services.ApISignSetup(AppSign actionOptions);//签名验证 ( appKey + signKey + timeStamp + data );
builder.Services.ApISignSetup(builder.Configuration.GetSection("AopOption:AppSign"));//签名验证 ( appKey + signKey + timeStamp + data );
builder.Services.AddUiFilesZipSetup();//将前端UI压缩文件进行解压
app.UseVirtualPathMiddle();//虚拟路径
前端
"appKey": appKey,
"timeStamp": (Math.floor(Date.now() / 1000) + 1000),
不进行接口安全校验 -> NonAplSafeAttribute
不签名验证 -> NonAplSignAttribute
不进行全局的异常日志收集 -> NonExceptionAttribute
不对资源型信息进行过滤 -> NonResourceAttribute
不对结果进行统一 -> NonRestfulResultAttribute
/* 全局的异常日志配置 */
"ExceptionLog": {
"Enabled": true,
"LogToFile": false,
"LogMore": false
},
/* 请求日志拦截配置 */
"RequestLog": {
"Enabled": true,
"LogToFile": false, //记录到文件
"LogMore": false, //记录更多内容 如写入数据库 需继承重写 IRestfulFilterLog
"IgnoreApis": ""
},
/*接口安全校验*/
"ApISafe": {
"AppKeys": "",//多个appKey用逗号分开
"AppKeyName": "appKey",
"TimeStampName": "timeStamp",
"ExpiresMinute": 2, //单位(分钟)
}
/*签名验证*/
"AppSign": {
"AppKeys": "",//多个appKey用逗号分开
"AppKeyName": "appKey",
"TimeStampName": "timeStamp",
"ExpiresMinute": 2, //单位(分钟)
"SignKey": "", //签名key
"SignatureName": "signature", //签名
"IgnoreApi": "" //签名验证忽略api列表
}
/* 整合配置 */
"AopOption": {
"RequestLog": {
"Enabled": true,
"LogToFile": false, //记录到文件
"LogMore": false, //记录更多内容 如写入数据库 需继承重写 IRestfulFilterLog
"IgnoreApis": ""
},
"ExceptionLog": {
"Enabled": true,
"LogToFile": false,
"LogMore": false
},
"AppSign": {
"AppKeys": "",//多个appKey用逗号分开
"AppKeyName": "appKey",
"TimeStampName": "timeStamp",
"ExpiresMinute": 2, //单位(分钟)
"SignKey": "", //签名key
"SignatureName": "signature", //签名
"IgnoreApi": "" //签名验证忽略api列表
}
},
"VirtualPath":""//虚拟路径