diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/EventHandlers/LoginEventHandler.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/EventHandlers/LoginEventHandler.cs index 38b6f0a8..6bb5a407 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/EventHandlers/LoginEventHandler.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/EventHandlers/LoginEventHandler.cs @@ -19,7 +19,7 @@ namespace Yi.Framework.Rbac.Application.EventHandlers private readonly ILogger _logger; private readonly IRepository _loginLogRepository; public LoginEventHandler(ILogger logger, IRepository loginLogRepository) { _logger = logger; _loginLogRepository = loginLogRepository; } - public Task HandleEventAsync(LoginEventArgs eventData) + public async Task HandleEventAsync(LoginEventArgs eventData) { _logger.LogInformation($"用户【{eventData.UserId}:{eventData.UserName}】登入系统"); var loginLogEntity = eventData.Adapt(); @@ -27,8 +27,7 @@ namespace Yi.Framework.Rbac.Application.EventHandlers loginLogEntity.LoginUser = eventData.UserName; loginLogEntity.CreatorId = eventData.UserId; //异步插入 - _loginLogRepository.InsertAsync(loginLogEntity); - return Task.CompletedTask; + await _loginLogRepository.InsertAsync(loginLogEntity); } } } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/TestJob.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/BackupDataBaseJob.cs similarity index 75% rename from Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/TestJob.cs rename to Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/BackupDataBaseJob.cs index faad168e..ac05fe7e 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/TestJob.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Jobs/BackupDataBaseJob.cs @@ -1,9 +1,13 @@ -using Quartz; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; using Volo.Abp.BackgroundWorkers.Quartz; namespace Yi.Framework.Rbac.Application.Jobs { - //public class TestJob : QuartzBackgroundWorkerBase + //public class BackupDataBaseJob : QuartzBackgroundWorkerBase //{ // public TestJob() // { diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs index 55e98847..83675077 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs @@ -151,13 +151,13 @@ namespace Yi.Framework.Rbac.Application.Services /// /// 创建令牌 /// - /// + /// /// - private string CreateToken(Dictionary dic) + private string CreateToken(List> kvs) { var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtOptions.SecurityKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); - var claims = dic.Select(x => new Claim(x.Key, x.Value.ToString())).ToList(); + var claims = kvs.Select(x => new Claim(x.Key, x.Value.ToString())).ToList(); var token = new JwtSecurityToken( issuer: _jwtOptions.Issuer, audience: _jwtOptions.Audience, diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/AccountManager.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/AccountManager.cs index b3bf4e21..c6c1f63b 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/AccountManager.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Managers/AccountManager.cs @@ -73,37 +73,43 @@ namespace Yi.Framework.Rbac.Domain.Managers /// /// - public Dictionary UserInfoToClaim(UserRoleMenuDto dto) + public List> UserInfoToClaim(UserRoleMenuDto dto) { - var claims = new Dictionary(); - claims.Add(AbpClaimTypes.UserId, dto.User.Id); - claims.Add(AbpClaimTypes.UserName, dto.User.UserName); + var claims = new List>(); + AddToClaim(claims,AbpClaimTypes.UserId, dto.User.Id.ToString()); + AddToClaim(claims,AbpClaimTypes.UserName, dto.User.UserName); if (dto.User.DeptId is not null) { - claims.Add(TokenTypeConst.DeptId, dto.User.DeptId); + AddToClaim(claims,TokenTypeConst.DeptId, dto.User.DeptId.ToString()); } if (dto.User.Email is not null) { - claims.Add(AbpClaimTypes.Email, dto.User.Email); + AddToClaim(claims,AbpClaimTypes.Email, dto.User.Email); } if (dto.User.Phone is not null) { - claims.Add(AbpClaimTypes.PhoneNumber, dto.User.Phone); + AddToClaim(claims,AbpClaimTypes.PhoneNumber, dto.User.Phone.ToString()); } if (UserConst.Admin.Equals(dto.User.UserName)) { - claims.Add(TokenTypeConst.Permission, UserConst.AdminPermissionCode); - claims.Add(TokenTypeConst.Roles, UserConst.AdminRolesCode); + AddToClaim(claims,TokenTypeConst.Permission, UserConst.AdminPermissionCode); + AddToClaim(claims,TokenTypeConst.Roles, UserConst.AdminRolesCode); } else { - claims.Add(TokenTypeConst.Permission, dto.PermissionCodes.Where(x => !string.IsNullOrEmpty(x))); - claims.Add(AbpClaimTypes.Role, dto.RoleCodes.Where(x => !string.IsNullOrEmpty(x))); + dto.PermissionCodes?.ForEach(per => AddToClaim(claims, TokenTypeConst.Permission, per)); + dto.RoleCodes?.ForEach(role => AddToClaim(claims, AbpClaimTypes.Role, role)); } return claims; } + + private void AddToClaim(List> claims, string key, string value) + { + claims.Add(new KeyValuePair(key, value)); + } + /// /// 更新密码 /// diff --git a/Yi.Abp.Net8/src/Yi.Abp.Application/Jobs/TestJob.cs b/Yi.Abp.Net8/src/Yi.Abp.Application/Jobs/TestJob.cs new file mode 100644 index 00000000..fe87dcef --- /dev/null +++ b/Yi.Abp.Net8/src/Yi.Abp.Application/Jobs/TestJob.cs @@ -0,0 +1,20 @@ +using Quartz; +using Volo.Abp.BackgroundWorkers.Quartz; + +namespace Yi.Framework.Rbac.Application.Jobs +{ + public class TestJob : QuartzBackgroundWorkerBase + { + public TestJob() + { + JobDetail = JobBuilder.Create().WithIdentity(nameof(TestJob)).Build(); + Trigger = TriggerBuilder.Create().WithIdentity(nameof(TestJob)).WithCronSchedule("* * * * * ? *").Build(); + } + public override Task Execute(IJobExecutionContext context) + { + //定时任务,非常简单 + //Console.WriteLine("你好,世界"); + return Task.CompletedTask; + } + } +}