// 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995 // // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证 using Microsoft.AspNetCore.Authentication; namespace Admin.NET.Core.Service; public static class HttpContextExtension { public static async Task GetExternalProvidersAsync(this HttpContext context) { ArgumentNullException.ThrowIfNull(context); var schemes = context.RequestServices.GetRequiredService(); return (from scheme in await schemes.GetAllSchemesAsync() where !string.IsNullOrEmpty(scheme.DisplayName) select scheme).ToArray(); } public static async Task IsProviderSupportedAsync(this HttpContext context, string provider) { ArgumentNullException.ThrowIfNull(context); return (from scheme in await context.GetExternalProvidersAsync() where string.Equals(scheme.Name, provider, StringComparison.OrdinalIgnoreCase) select scheme).Any(); } }