ProjectOptions.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Admin.NET.Core;
  2. using AspNetCoreRateLimit;
  3. using Furion;
  4. using Microsoft.Extensions.DependencyInjection;
  5. namespace Admin.NET.Web.Core;
  6. public static class ProjectOptions
  7. {
  8. /// <summary>
  9. /// 注册项目配置选项
  10. /// </summary>
  11. /// <param name="services"></param>
  12. /// <returns></returns>
  13. public static IServiceCollection AddProjectOptions(this IServiceCollection services)
  14. {
  15. services.AddConfigurableOptions<DbConnectionOptions>();
  16. services.AddConfigurableOptions<RefreshTokenOptions>();
  17. services.AddConfigurableOptions<SnowIdOptions>();
  18. services.AddConfigurableOptions<CacheOptions>();
  19. services.AddConfigurableOptions<OSSProviderOptions>();
  20. services.AddConfigurableOptions<UploadOptions>();
  21. services.AddConfigurableOptions<WechatOptions>();
  22. services.AddConfigurableOptions<WechatPayOptions>();
  23. services.AddConfigurableOptions<PayCallBackOptions>();
  24. services.AddConfigurableOptions<CodeGenOptions>();
  25. services.AddConfigurableOptions<ApiJsonOptions>();
  26. services.AddConfigurableOptions<EmailOptions>();
  27. services.AddConfigurableOptions<OAuthOptions>();
  28. services.AddConfigurableOptions<CryptogramOptions>();
  29. //services.AddConfigurableOptions<IpRateLimitingOptions>();
  30. //services.AddConfigurableOptions<IpRateLimitPoliciesOptions>();
  31. //services.AddConfigurableOptions<ClientRateLimitingOptions>();
  32. //services.AddConfigurableOptions<ClientRateLimitPoliciesOptions>();
  33. services.Configure<IpRateLimitOptions>(App.Configuration.GetSection("IpRateLimiting"));
  34. services.Configure<IpRateLimitPolicies>(App.Configuration.GetSection("IpRateLimitPolicies"));
  35. services.Configure<ClientRateLimitOptions>(App.Configuration.GetSection("ClientRateLimiting"));
  36. services.Configure<ClientRateLimitPolicies>(App.Configuration.GetSection("ClientRateLimitPolicies"));
  37. return services;
  38. }
  39. }