Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 未找到默认身份验证/质询方案,但它们';启动时重新设置_Asp.net Core_Azure Active Directory - Fatal编程技术网

Asp.net core 未找到默认身份验证/质询方案,但它们';启动时重新设置

Asp.net core 未找到默认身份验证/质询方案,但它们';启动时重新设置,asp.net-core,azure-active-directory,Asp.net Core,Azure Active Directory,在将.NET Framework web API移植到.NET Core 2.2的过程中,我在使用AD配置身份验证时遇到了一些问题。旧的应用程序会有如下内容: app.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = "contoso.onmicrosoft.com",

在将.NET Framework web API移植到.NET Core 2.2的过程中,我在使用AD配置身份验证时遇到了一些问题。旧的应用程序会有如下内容:

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
    new WindowsAzureActiveDirectoryBearerAuthenticationOptions
    {
        Tenant = "contoso.onmicrosoft.com",
        TokenValidationParameters = new TokenValidationParameters { ValidAudience = "1111..."}
    });
我们使用API的方式如下:web应用程序处理身份验证(获取JWT)并将所述令牌与我们的API一起用于某些操作。在网上搜索时,我找到了使用
Microsoft.AspNetCore.Authentication.AzureAD.UI
的示例。我现在得出以下结论:

appsettings.json

{
    ...
    "AzureAd": {
        "Domain": "contoso.onmicrosoft.com",
        "Instance": "https://login.microsoftonline.com",
        "TenantId": "2222...",
        "ClientId": "1111..."
    }
}
Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = AzureADDefaults.JwtBearerAuthenticationScheme;
        options.DefaultChallengeScheme = AzureADDefaults.JwtBearerAuthenticationScheme;
    });
}

public void Configure(IApplicationBuilder app)
{
    app.UseAuthentication();
    app.UseMvc();
}

问题是,当我使用生成的令牌(可与.NET Framework应用程序一起使用)时,我收到以下错误:
InvalidOperationException:未指定authenticationScheme,并且未找到DefaultChallengeScheme。

在我看来,您尚未添加Azure AD身份验证方案。这通常类似于
services.AddAuthentication().AddAzureADBearer()