CSharp-Single-EFCore/Bunny.WebApi/Configuration/ServiceRegistration.cs

68 lines
2.6 KiB
C#
Raw Normal View History

using Bunny.Common.Filter;
2024-08-15 22:55:32 +08:00
using Bunny.Service.Filter;
using Bunny.Service.Job.JobService;
2024-08-15 22:55:32 +08:00
using Lazy.Captcha.Core;
using Lazy.Captcha.Core.Generator;
using SkiaSharp;
namespace Bunny.WebApi.Configuration;
public static class ServiceRegistration
{
/// <summary>
/// 注入后台服务相关
2024-08-15 22:55:32 +08:00
/// 用于添加所以Job服务之后在BaseConfig中进行调用
/// </summary>
/// <param name="builder"></param>
public static void AddApplicationBackendServices(this WebApplicationBuilder builder)
{
// 测试注入后台服务
builder.AddCreateSimpleJobService();
builder.AddCronJobService();
2024-08-15 22:55:32 +08:00
}
/// <summary>
/// 配置过滤器
/// </summary>
/// <param name="builder"></param>
public static void AddFilterConfigInitialize(this WebApplicationBuilder builder)
{
// 添加自定义过滤器---全局异常捕获
builder.Services.AddControllers(option =>
{
option.Filters.Add<GlobalExceptionFilter>();
option.Filters.Add<ValidateModelStateAttribute>();
2024-08-15 22:55:32 +08:00
option.Filters.Add<AuthorizationFilter>();
});
}
/// <summary>
/// 添加验证码配置内容
/// </summary>
/// <param name="builder"></param>
public static void AddCaptcha(this WebApplicationBuilder builder)
{
var service = builder.Services;
// 使用图形验证码
service.AddDistributedMemoryCache();
// 验证码相关配置内容
service.AddCaptcha(options =>
{
options.CaptchaType = CaptchaType.DEFAULT; // 验证码类型
options.CodeLength = 4; // 验证码长度
options.ExpirySeconds = 60; // 过期时间(单位/秒)
options.IgnoreCase = true; // 比较忽略大小写
options.ImageOption.Animation = true; // 是否启用动画
options.ImageOption.Width = 130; // 验证码宽度
options.ImageOption.Height = 48; // 验证码高度
options.ImageOption.BackgroundColor = SKColors.White;
options.ImageOption.BubbleCount = 6; // 气泡数量
options.ImageOption.BubbleMinRadius = 2; // 气泡最小半径
options.ImageOption.BubbleMaxRadius = 6; // 气泡最大半径
options.ImageOption.BubbleThickness = 2; // 气泡边沿厚度
options.ImageOption.InterferenceLineCount = 2; // 干扰线数量
options.ImageOption.FontSize = 36; // 字体大小
options.ImageOption.FontFamily = DefaultFontFamilys.Instance.Kaiti; // 字体中文使用kaiti其他字符可根据喜好设置
});
}
}