Azure active directory 从HttpClient传递JWT令牌以访问安全的.NET核心Web API

Azure active directory 从HttpClient传递JWT令牌以访问安全的.NET核心Web API,azure-active-directory,asp.net-core-webapi,angular9,.net-core-3.1,.net-core-authorization,Azure Active Directory,Asp.net Core Webapi,Angular9,.net Core 3.1,.net Core Authorization,我需要通过提供令牌从Angular 9应用程序调用安全Web API。我正在使用Angular和.NETCore3.1WebAPI。我已经成功生成了Azure B2C令牌,但由于出现CORS错误,我坚持调用安全web api 调用Web API端点的角度组件 身份验证服务 Web API控制器和端点 错误 COR的政策可能有点挑剔。因此,我建议您尝试一个非常开放的CORS策略(这并不太危险,因为您使用的是头身份验证,而不是cookie) 因此,您的配置服务方法应该如下所示: public voi

我需要通过提供令牌从Angular 9应用程序调用安全Web API。我正在使用Angular和.NETCore3.1WebAPI。我已经成功生成了Azure B2C令牌,但由于出现CORS错误,我坚持调用安全web api

调用Web API端点的角度组件 身份验证服务 Web API控制器和端点 错误
COR的政策可能有点挑剔。因此,我建议您尝试一个非常开放的CORS策略(这并不太危险,因为您使用的是头身份验证,而不是cookie)

因此,您的配置服务方法应该如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
}
然后,您的配置方法应该类似于:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseCors( options => options.WithOrigins("http://example.com").AllowAnyMethod() );

    app.UseMvc();
}
请注意,Configure方法中的顺序很重要。对CORS的调用必须相对较早,如果不是管道中的第一个中间件的话

如果这是可行的,那就向后慢慢添加策略,看看哪一个会被打破。CORS可能非常挑剔,所以最好将所有内容都放在一个基本示例中,然后慢慢添加


更多阅读:CORS的政策可能有点挑剔。因此,我建议您尝试一个非常开放的CORS策略(这并不太危险,因为您使用的是头身份验证,而不是cookie)

因此,您的配置服务方法应该如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
}
然后,您的配置方法应该类似于:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseCors( options => options.WithOrigins("http://example.com").AllowAnyMethod() );

    app.UseMvc();
}
请注意,Configure方法中的顺序很重要。对CORS的调用必须相对较早,如果不是管道中的第一个中间件的话

如果这是可行的,那就向后慢慢添加策略,看看哪一个会被打破。CORS可能非常挑剔,所以最好将所有内容都放在一个基本示例中,然后慢慢添加


更多信息请阅读:

出现CORS错误
请分享详细的错误消息,以便我们更好地解决问题。此外,不建议同时使用AllowOnOrigin和AllowCredentials方法进行配置。您可以尝试使用WithOrigins方法指定允许的来源。我有带错误的更新问题,也有粘贴JWT身份验证方法,不确定我是否在那里出错?
get CORS error
请共享详细的错误消息,以便我们更好地解决问题。此外,不建议同时使用AllowOnOrigin和AllowCredentials方法进行配置。您可以尝试使用WithOrigins方法指定允许的来源。我有一个带有错误的更新问题,还粘贴了JWT身份验证方法,不确定我是否在那里出错?我已经按照您的建议进行了尝试,但没有成功,是不是抛出了我在底部上传的有问题的以下错误,以及当您直接调用此API时(邮递员,在你的浏览器中等),并检查标题,您可以看到它正在返回您期望的CORS标题?因为它说它没有返回访问控制源,这意味着CORS设置不正确。我必须按以下方式更改CORS,并设法运行和调用Web API,但得到401个未经授权的错误服务。AddCors(options=>options.AddPolicy(“CorsPolicy”,builder=>{builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader())});我已经按照您的建议尝试了,但没有得到任何运气,在底部和当您直接调用此API时(邮递员,在您的浏览器中等),抛出了以下我上传的有问题的错误,并检查标题,您可以看到它正在返回您期望的CORS标题?因为它说它没有返回访问控制源,这意味着CORS设置不正确。我必须按以下方式更改CORS,并设法运行和调用Web API,但得到401个未经授权的错误服务。AddCors(options=>options.AddPolicy(“CorsPolicy”,builder=>{builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()) ; }));
public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseCors( options => options.WithOrigins("http://example.com").AllowAnyMethod() );

    app.UseMvc();
}