Modules/Framework/Gardener.VerifyCode/VerifyCodeExtensions.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

// -----------------------------------------------------------------------------
// 园丁,是个很简单的管理系统
//  gitee:https://gitee.com/hgflydream/Gardener 
//  issues:https://gitee.com/hgflydream/Gardener/issues 
// -----------------------------------------------------------------------------

using Furion;
using Gardener.ImageVerifyCode.Core;
using Gardener.ImageVerifyCode.Services;
using Gardener.VerifyCode.CacheStore;
using Gardener.VerifyCode.Core;
using Gardener.VerifyCode.Core.Settings;
using Gardener.VerifyCode.DbStore;
using Gardener.VerifyCode.Enums;
using Gardener.VerifyCode.Services;
using Microsoft.AspNetCore.Mvc;
using System;

namespace Microsoft.Extensions.DependencyInjection
{
    /// <summary>
    /// 验证码
    /// </summary>
    public static class VerifyCodeExtensions
    {
        /// <summary>
        /// 添加验证码服务
        /// </summary>
        /// <param name="services"></param>
        /// <param name="enableAutoVerification">是否启用自动验证</param>
        /// <returns></returns>
        public static IServiceCollection AddVerifyCode<TVerifyCodeStoreService>(this IServiceCollection services, bool enableAutoVerification = true) where TVerifyCodeStoreService : class, IVerifyCodeStoreService
        {
            if (enableAutoVerification)
            {
                services.Configure<MvcOptions>(options =>
                {
                    //自动验证
                    options.Filters.Add<VerifyCodeAutoVerificationFilter>();
                });
            }
            //图片验证码
            services.AddScoped<ImageVerifyCode>();
            services.AddScoped<IImageVerifyCodeService, ImageVerifyCodeService>();
            //图片验证码配置
            services.AddConfigurableOptions<ImageVerifyCodeOptions>();
             //邮件验证码
            services.AddScoped<EmailVerifyCode>();
            services.AddScoped<IEmailVerifyCodeService, EmailVerifyCodeService>();
            //邮件验证码配置
            services.AddConfigurableOptions<EmailVerifyCodeOptions>();
            //验证码存储实现
            services.AddScoped<IVerifyCodeStoreService, TVerifyCodeStoreService>();
            //验证码服务提供器
            services.AddScoped(serviceProvider => {
                Func<VerifyCodeTypeEnum, IVerifyCode> accesor = key =>
                {
                    if (VerifyCodeTypeEnum.Image.Equals(key))
                        return serviceProvider.GetRequiredService<ImageVerifyCode>();
                    else if (VerifyCodeTypeEnum.Email.Equals(key))
后面还有 31 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。