【修复】修复增加数据库操作日志后,Api接口端开启适配报错的问题。

This commit is contained in:
JianWeie
2022-04-11 16:29:12 +08:00
parent 43f1f4d811
commit 0da58b2aaf
6 changed files with 59 additions and 13 deletions

View File

@@ -38,11 +38,14 @@ namespace CoreCms.Net.Filter
/// 反射获取所有controller 和action /// 反射获取所有controller 和action
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
private static ControllerPermissionResult GetAllControllerAndActionByAssembly() private static ControllerPermissionResult GetAllControllerAndActionByAssembly(string dataSources)
{ {
var result = new List<ControllerPermission>(); var result = new List<ControllerPermission>();
var types = Assembly.Load("CoreCms.Net.Web.Admin").GetTypes(); var types = dataSources == GlobalEnumVars.CoreShopSystemCategory.Admin.ToString() ? Assembly.Load("CoreCms.Net.Web.Admin").GetTypes() :
dataSources == GlobalEnumVars.CoreShopSystemCategory.Api.ToString() ? Assembly.Load("CoreCms.Net.Web.WebApi").GetTypes() : null;
//var types = Assembly.Load("CoreCms.Net.Web.Admin").GetTypes();
var noController = new[] { "ToolsController", "LoginController", "DemoController" }; var noController = new[] { "ToolsController", "LoginController", "DemoController" };
@@ -136,30 +139,30 @@ namespace CoreCms.Net.Filter
/// 获取缓存ActionPermission /// 获取缓存ActionPermission
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public static List<ActionPermission> GetCacheCoreCmsActionPermission() public static List<ActionPermission> GetCacheCoreCmsActionPermission(string dataSources)
{ {
var memoryCacheManager = new MemoryCacheManager(); var memoryCacheManager = new MemoryCacheManager();
var cache = memoryCacheManager.Get<List<ActionPermission>>(CacheCoreCmsActionPermission); var cache = memoryCacheManager.Get<List<ActionPermission>>(CacheCoreCmsActionPermission);
return cache ?? UpdateCacheCoreCmsActionPermission().Actions; return cache ?? UpdateCacheCoreCmsActionPermission(dataSources).Actions;
} }
/// <summary> /// <summary>
/// 获取缓存ControllerPermission名称 /// 获取缓存ControllerPermission名称
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public static List<ControllerPermission> GetCacheCoreCmsControllerPermission() public static List<ControllerPermission> GetCacheCoreCmsControllerPermission(string dataSources)
{ {
var memoryCacheManager = new MemoryCacheManager(); var memoryCacheManager = new MemoryCacheManager();
var cache = memoryCacheManager.Get<List<ControllerPermission>>(CacheCoreCmsControllerPermission); var cache = memoryCacheManager.Get<List<ControllerPermission>>(CacheCoreCmsControllerPermission);
return cache ?? UpdateCacheCoreCmsActionPermission().ControllersAndActions; return cache ?? UpdateCacheCoreCmsActionPermission(dataSources).ControllersAndActions;
} }
/// <summary> /// <summary>
/// 更新cache /// 更新cache
/// </summary> /// </summary>
private static ControllerPermissionResult UpdateCacheCoreCmsActionPermission() private static ControllerPermissionResult UpdateCacheCoreCmsActionPermission(string dataSources)
{ {
var list = GetAllControllerAndActionByAssembly(); var list = GetAllControllerAndActionByAssembly(dataSources);
var memoryCacheManager = new MemoryCacheManager(); var memoryCacheManager = new MemoryCacheManager();
//缓存24小时 //缓存24小时
memoryCacheManager.Set(CacheCoreCmsControllerPermission, list.ControllersAndActions, 1440); memoryCacheManager.Set(CacheCoreCmsControllerPermission, list.ControllersAndActions, 1440);

View File

@@ -85,7 +85,7 @@ namespace CoreCms.Net.Middlewares
uLog.userId = authenticate.Principal.Identities.First().FindFirst(JwtRegisteredClaimNames.Jti)!.Value.ObjectToInt(0); uLog.userId = authenticate.Principal.Identities.First().FindFirst(JwtRegisteredClaimNames.Jti)!.Value.ObjectToInt(0);
} }
var adminLog = AdminsControllerPermission.GetCacheCoreCmsActionPermission(); var adminLog = AdminsControllerPermission.GetCacheCoreCmsActionPermission(_dataSources);
var curLog = adminLog.FirstOrDefault(p => p.path.ToLower() == _httpContextAccessor.HttpContext.Request.Path.Value.ToLower()); var curLog = adminLog.FirstOrDefault(p => p.path.ToLower() == _httpContextAccessor.HttpContext.Request.Path.Value.ToLower());
if (curLog != null) if (curLog != null)

View File

@@ -345,7 +345,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
public AdminUiCallBack GetAllControllerAndActionByAssembly() public AdminUiCallBack GetAllControllerAndActionByAssembly()
{ {
var jm = new AdminUiCallBack(); var jm = new AdminUiCallBack();
var data = AdminsControllerPermission.GetCacheCoreCmsControllerPermission(); var data = AdminsControllerPermission.GetCacheCoreCmsControllerPermission(GlobalEnumVars.CoreShopSystemCategory.Admin.ToString());
jm.data = data.OrderBy(u => u.name).ToList(); jm.data = data.OrderBy(u => u.name).ToList();
jm.code = 0; jm.code = 0;
jm.msg = "获取成功"; jm.msg = "获取成功";

View File

@@ -4803,6 +4803,49 @@
<param name="entity"></param> <param name="entity"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController">
<summary>
用户操作日志
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.#ctor(Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ISysUserOperationLogServices)">
<summary>
构造函数
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetPageList">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetIndex">
<summary>
首页数据
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.DoDelete(CoreCms.Net.Model.FromBody.FMIntId)">
<summary>
单选删除
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.DoBatchDelete(CoreCms.Net.Model.FromBody.FMArrayIntIds)">
<summary>
批量删除
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetDetails(CoreCms.Net.Model.FromBody.FMIntId)">
<summary>
预览数据
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.SysUserRoleController"> <member name="T:CoreCms.Net.Web.Admin.Controllers.SysUserRoleController">
<summary> <summary>
用户角色关联表 用户角色关联表

View File

@@ -48,7 +48,7 @@
"RecordAccessLogs": { "RecordAccessLogs": {
"Enabled": true, //是否开启记录操作日志功能。 "Enabled": true, //是否开启记录操作日志功能。
"EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启) "EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启)
"EnabledDbMode": true, //是否开启记录到数据库模式。(影响效率,接口不建议开启) "EnabledDbMode": true, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。
"IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔 "IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔
}, },
//记录IP请求数据 //记录IP请求数据

View File

@@ -46,9 +46,9 @@
}, },
//记录用户方访问数据 //记录用户方访问数据
"RecordAccessLogs": { "RecordAccessLogs": {
"Enabled": true, //是否开启记录操作日志功能。 "Enabled": false, //是否开启记录操作日志功能。
"EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启) "EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启)
"EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,接口不建议开启) "EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。
"IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔 "IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔
}, },
//记录IP请求数据 //记录IP请求数据