Files
Yi.Admin/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/YiFrameworkRbacDomainModule.cs

60 lines
2.1 KiB
C#
Raw Normal View History

2025-02-01 21:53:05 +08:00
using Medallion.Threading;
using Medallion.Threading.Redis;
2025-03-18 23:13:16 +08:00
using Microsoft.Extensions.Configuration;
2025-02-01 21:53:05 +08:00
using Microsoft.Extensions.DependencyInjection;
using StackExchange.Redis;
2023-12-11 09:55:12 +08:00
using Volo.Abp.AspNetCore.SignalR;
using Volo.Abp.Caching;
2025-02-01 21:53:05 +08:00
using Volo.Abp.DistributedLocking;
2023-12-11 09:55:12 +08:00
using Volo.Abp.Domain;
using Volo.Abp.Imaging;
2023-12-11 09:55:12 +08:00
using Volo.Abp.Modularity;
2024-02-18 15:02:23 +08:00
using Yi.Framework.Caching.FreeRedis;
2023-12-11 09:55:12 +08:00
using Yi.Framework.Mapster;
using Yi.Framework.Rbac.Domain.Authorization;
using Yi.Framework.Rbac.Domain.Operlog;
using Yi.Framework.Rbac.Domain.Shared;
2023-12-20 22:06:43 +08:00
using Yi.Framework.Rbac.Domain.Shared.Options;
2023-12-11 09:55:12 +08:00
namespace Yi.Framework.Rbac.Domain
{
[DependsOn(
typeof(YiFrameworkRbacDomainSharedModule),
2024-02-18 15:02:23 +08:00
typeof(YiFrameworkCachingFreeRedisModule),
2023-12-11 09:55:12 +08:00
typeof(AbpAspNetCoreSignalRModule),
typeof(AbpDddDomainModule),
typeof(AbpCachingModule),
2025-02-01 21:53:05 +08:00
typeof(AbpImagingImageSharpModule),
typeof(AbpDistributedLockingModule)
2023-12-11 09:55:12 +08:00
)]
public class YiFrameworkRbacDomainModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var service = context.Services;
2023-12-20 22:06:43 +08:00
var configuration = context.Services.GetConfiguration();
2023-12-11 09:55:12 +08:00
service.AddControllers(options =>
{
options.Filters.Add<PermissionGlobalAttribute>();
options.Filters.Add<OperLogGlobalAttribute>();
});
2023-12-20 22:06:43 +08:00
//配置阿里云短信
Configure<AliyunOptions>(configuration.GetSection(nameof(AliyunOptions)));
2025-02-01 21:53:05 +08:00
2025-03-18 23:13:16 +08:00
//分布式锁,需要redis
if (configuration.GetSection("Redis").GetValue<bool>("IsEnabled"))
2025-02-01 21:53:05 +08:00
{
2025-03-18 23:13:16 +08:00
context.Services.AddSingleton<IDistributedLockProvider>(sp =>
{
var connection = ConnectionMultiplexer
.Connect(configuration["Redis:Configuration"]);
return new
RedisDistributedSynchronizationProvider(connection.GetDatabase());
});
}
2023-12-11 09:55:12 +08:00
}
}
}