Asp.net core JWT认证

Asp.net core JWT认证,asp.net-core,jwt,Asp.net Core,Jwt,我的团队正在.NETCore中构建一个WebAPI。我们使用令牌身份验证来验证任何客户端,令牌来自Azure AD 我们将此代码放在Startup.cs中 app.UseJwtBearerAuthentication(options => { options.AutomaticAuthenticate = true; options.AutomaticChallenge = true; o

我的团队正在.NETCore中构建一个WebAPI。我们使用令牌身份验证来验证任何客户端,令牌来自Azure AD

我们将此代码放在Startup.cs中

app.UseJwtBearerAuthentication(options => {
            options.AutomaticAuthenticate = true;
            options.AutomaticChallenge = true;               
            options.Authority = "https://login.windows.net/1da3434a9-e5a6-4e9e-80c3-aca8ed37cb03";               
            options.Audience = "https://test.onmicrosoft.com/test_api";
            options.RequireHttpsMetadata = false;
        });

        services.AddCors(options =>
        {
            // Define one or more CORS policies
            options.AddPolicy("AllowAll",
                builder =>
                {
                    builder.AllowAnyOrigin()
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
        });

只有当我们允许匿名访问时,此选项才起作用。我检查了令牌,令牌是有效的。但每次我们点击控制器,它就会抛出cors错误。即使我们启用了cors,添加中间件的顺序也很重要

要为整个应用程序启用CORS,请将CORS中间件添加到 您的请求管道使用
UseCors
扩展方法。注意 CORS中间件必须在应用程序中执行任何定义的端点 您希望支持跨来源请求(例如,在调用
UseMvc


您应该将
服务.AddCors
置于可能通过401重定向用户的几乎所有内容之上。

添加中间件的顺序确实很重要

要为整个应用程序启用CORS,请将CORS中间件添加到 您的请求管道使用
UseCors
扩展方法。注意 CORS中间件必须在应用程序中执行任何定义的端点 您希望支持跨来源请求(例如,在调用
UseMvc


您应该将
服务.AddCors
置于可能通过401重定向用户的几乎所有内容之上。

您不能将AllowCredentials和AllowAnyorOrigin组合在一起。选择一个特定的来源,您的请求可能会生效。

您不能将AllowCredentials和AllowAnyorOrigin组合在一起。选择一个特定的来源,您的请求可能会生效。

您能给我们看一下CORS代码吗?@Danny,我更新了我的帖子并添加了CORS代码谢谢。能否显示确切的错误消息?XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。回复的HTTP状态代码为401。你能给我们看一下CORS代码吗?@Danny,我更新了我的帖子并添加了CORS代码谢谢。能否显示确切的错误消息?XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。响应的HTTP状态代码为401。