gpt4 book ai didi

c# - 使用Windows身份验证的Asp.net核心Web API - Cors请求未经授权

转载 作者:可可西里 更新时间:2023-11-01 09:12:42 27 4
gpt4 key购买 nike

在我的 asp.net 核心 web api 中,我已经按照来自 MS documentation 的文章配置了 Cors。 . Web API 应用程序正在使用 Windows 身份验证(未启用匿名身份验证)。在 startup.cs

中创建了 Cor 的策略并添加了中间件,如下所示
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
);
});

services.AddMvc().AddJsonOptions(options => {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//Enable CORS policy
app.UseCors("CorsPolicy");
app.UseMvc();
}

还应用了每个 Controller 级别的策略

[EnableCors("CorsPolicy"), Route("api/[controller]")]
public class LocationController : BaseController<Location>
{
//code
}

选项请求正在获得未授权。请求和响应看起来像

enter image description here

我见过类似的问题并尝试了几乎所有的解决方案,但选项请求仍然失败。

最佳答案

您可能想阅读此主题:https://github.com/aspnet/CORS/issues/60 .您可以混合使用匿名和 NTLM,这样您的 CORS 预检不会被拒绝(因为它们不包含 Windows 凭据)。 IIS 在到达中间件之前处理 NTLM 身份验证,因此这可能是 IIS 的事情。您可能需要允许匿名 COR 预检。

关于c# - 使用Windows身份验证的Asp.net核心Web API - Cors请求未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com