@@ -654,4 +654,70 @@ public static IServiceCollection AddMudHttpClientsFromConfiguration(
654654
655655 return services ;
656656 }
657+
658+ /// <summary>
659+ /// 从 IConfiguration 绑定 OAuth2 令牌管理器配置。
660+ /// </summary>
661+ /// <param name="services">服务集合。</param>
662+ /// <param name="configuration">配置实例。</param>
663+ /// <param name="sectionPath">配置节点路径,默认 <see cref="OAuth2Options.SectionName"/>。</param>
664+ /// <returns>服务集合(链式调用)。</returns>
665+ /// <exception cref="ArgumentNullException">参数为 null 时抛出。</exception>
666+ public static IServiceCollection AddMudHttpOAuth2FromConfiguration (
667+ this IServiceCollection services ,
668+ IConfiguration configuration ,
669+ string sectionPath = OAuth2Options . SectionName )
670+ {
671+ if ( services == null )
672+ throw new ArgumentNullException ( nameof ( services ) ) ;
673+ if ( configuration == null )
674+ throw new ArgumentNullException ( nameof ( configuration ) ) ;
675+
676+ services . Configure < OAuth2Options > ( configuration . GetSection ( sectionPath ) ) ;
677+ return services ;
678+ }
679+
680+ /// <summary>
681+ /// 从 IConfiguration 绑定令牌恢复配置。
682+ /// </summary>
683+ /// <param name="services">服务集合。</param>
684+ /// <param name="configuration">配置实例。</param>
685+ /// <param name="sectionPath">配置节点路径,默认 <see cref="TokenRecoveryOptions.SectionName"/>。</param>
686+ /// <returns>服务集合(链式调用)。</returns>
687+ /// <exception cref="ArgumentNullException">参数为 null 时抛出。</exception>
688+ public static IServiceCollection AddMudHttpTokenRecoveryFromConfiguration (
689+ this IServiceCollection services ,
690+ IConfiguration configuration ,
691+ string sectionPath = TokenRecoveryOptions . SectionName )
692+ {
693+ if ( services == null )
694+ throw new ArgumentNullException ( nameof ( services ) ) ;
695+ if ( configuration == null )
696+ throw new ArgumentNullException ( nameof ( configuration ) ) ;
697+
698+ services . Configure < TokenRecoveryOptions > ( configuration . GetSection ( sectionPath ) ) ;
699+ return services ;
700+ }
701+
702+ /// <summary>
703+ /// 从 IConfiguration 绑定用户令牌缓存配置。
704+ /// </summary>
705+ /// <param name="services">服务集合。</param>
706+ /// <param name="configuration">配置实例。</param>
707+ /// <param name="sectionPath">配置节点路径,默认 <c>"MudHttpUserTokenCache"</c>。</param>
708+ /// <returns>服务集合(链式调用)。</returns>
709+ /// <exception cref="ArgumentNullException">参数为 null 时抛出。</exception>
710+ public static IServiceCollection AddMudHttpUserTokenCacheFromConfiguration (
711+ this IServiceCollection services ,
712+ IConfiguration configuration ,
713+ string sectionPath = "MudHttpUserTokenCache" )
714+ {
715+ if ( services == null )
716+ throw new ArgumentNullException ( nameof ( services ) ) ;
717+ if ( configuration == null )
718+ throw new ArgumentNullException ( nameof ( configuration ) ) ;
719+
720+ services . Configure < UserTokenCacheOptions > ( configuration . GetSection ( sectionPath ) ) ;
721+ return services ;
722+ }
657723}
0 commit comments