69 lines
2.7 KiB
C#
69 lines
2.7 KiB
C#
using Bunny.Common.Filter;
|
||
using Bunny.Service.Job.JobService;
|
||
using Lazy.Captcha.Core;
|
||
using Lazy.Captcha.Core.Generator;
|
||
using SkiaSharp;
|
||
|
||
namespace Bunny.WebApi.Configuration;
|
||
|
||
public static class ServiceRegistration
|
||
{
|
||
/// <summary>
|
||
/// 注入后台服务相关
|
||
/// 用于添加所以Job服务,之后在BaseConfig中进行调用
|
||
/// </summary>
|
||
/// <param name="builder"></param>
|
||
public static void AddApplicationBackendServices(this WebApplicationBuilder builder)
|
||
{
|
||
// 测试注入后台服务
|
||
builder.AddCreateSimpleJobService();
|
||
builder.AddCronJobService();
|
||
}
|
||
|
||
/// <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>();
|
||
option.Filters.Add<TransactionIAsyncActionFilter>();
|
||
option.Filters.Add<AuthorizationFilter>();
|
||
option.Filters.Add(typeof(CacheIiAsyncActionFilter));
|
||
});
|
||
}
|
||
|
||
/// <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,其他字符可根据喜好设置
|
||
});
|
||
}
|
||
} |