Asp.net core JWT认证
我的团队正在.NETCore中构建一个WebAPI。我们使用令牌身份验证来验证任何客户端,令牌来自Azure AD 我们将此代码放在Startup.cs中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
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。