javascript - 发布请求时未经授权的 401 Windows 身份验证 + Core 2.2 WebAPI

标签 javascript angular

我正在将 .CORE 2.2 与 WebAPI 结合使用。 该解决方案托管在 IIS10 Windows Server 2016 上,Windows 身份验证应该是我的服务的唯一身份验证方法。 在 Angular 7 中,当我使用选项 withCredentials 设置为 true 发出 GET 请求时。一切都按预期进行。无论如何,对于此 Post 请求,它不起作用,并且响应为未经授权 401。 仅供引用,APi 和服务器 API 驻留在不同的服务器上。

post<T>(path, body = {}): Observable<T> {
   let requestheaders = new HttpHeaders({
      'Content-Type': 'application/json',
   });
   return this.http.post(this.getUrl(path), '{}', 
   { headers: requestheaders, withCredentials: true }) as Observable<T>;
}

这不是 Cors 策略,因为 Cors 已正确配置

services.AddCors(options => options.AddPolicy("CorsPolicy",
builder =>
{
      builder.WithOrigins("http://localhost:4200", 
            "https://localhost:4200")
            .AllowAnyHeader()
            .AllowAnyMethod()
            .AllowCredentials();
}));

app.UseCors("CorsPolicy");

有关如何处理此问题的任何线索吗?

最佳答案

  • 在后端,将 AllowCredentialsSupportsCredentials 属性设置为 true
  • 在您的后端中,不要将通配符 (*) 放入允许来源中。专门添加您的前端网址

类似这样的

.NET 核心

services.AddCors(c =>
{
   c.AddPolicy("AllowOrigin",
       options => options
              .WithOrigins("http://localhost:4200") //Important
              .AllowAnyMethod()
              .AllowAnyHeader()
              .AllowCredentials() //Important
    );
});

 services.AddCors();

     var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();

     policy.Headers.Add("*");    
     policy.Methods.Add("*");          
     policy.Origins.Add("*");
     policy.SupportsCredentials = true;

     services.ConfigureCors(x=>x.AddPolicy("mypolicy", policy));

.NET 4.6

[EnableCors(origins: "http://localhost:4200", headers: "*", methods: "*", SupportsCredentials = true)]

关于javascript - 发布请求时未经授权的 401 Windows 身份验证 + Core 2.2 WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889509/

相关文章:

javascript - 在 mocha-jsdom 中使用 jQuery 时如何修复 "ReferenceError: $ is not defined"?

angular - 为什么直接导航到这条路线不匹配?

angular - 如何使用 node js buildpack 在 cloud foundry 上部署 angular 6 应用程序?

angular - “p-table”不是已知元素 :

angular - 从 Angular 2 上的异步管道订阅的BehaviorSubject 捕获错误时出现无限循环

javascript - Angular Material : Hide Autocomplete Panel when User hits enter Key

javascript - IE7 不为 FullCalendar 发出 JSON 请求

javascript - jquery - ajax 加载内容上的日期选择器(颜色选择器等)

javascript - 如何使用 javascript 通过对象属性将数组拆分为数组?

javascript - 猫头鹰日期时间 : event is not trigerring on date time select?