Javascript 未经授权的401-on-Post-request Windows身份验证&x2B;核心2.2 WebAPI
我将.core2.2与WebAPI一起使用。 该解决方案托管在IIS10 Windows Server 2016上,Windows身份验证应该是我的服务的唯一身份验证方法。 在Angular 7中,当我使用凭证设置为true的选项发出GET请求时。一切正常。它对这个Post请求无论如何都不起作用,并且响应是未经授权的。 仅供参考,APi和服务器APi位于不同的服务器上Javascript 未经授权的401-on-Post-request Windows身份验证&x2B;核心2.2 WebAPI,javascript,angular,Javascript,Angular,我将.core2.2与WebAPI一起使用。 该解决方案托管在IIS10 Windows Server 2016上,Windows身份验证应该是我的服务的唯一身份验证方法。 在Angular 7中,当我使用凭证设置为true的选项发出GET请求时。一切正常。它对这个Post请求无论如何都不起作用,并且响应是未经授权的。 仅供参考,APi和服务器APi位于不同的服务器上 post<T>(path, body = {}): Observable<T> { let req
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>;
}
及
有关于如何处理此问题的线索吗?- 在后端,将AllowCredentials或SupportsCredentials属性设置为true
- 在后端,不要将通配符(
)放在允许源代码中。添加您的前端URL*
services.AddCors(c =>
{
c.AddPolicy("AllowOrigin",
options => options
.WithOrigins("http://localhost:4200") //Important
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials() //Important
);
});
或
.NET 4.6
[EnableCors(origins: "http://localhost:4200", headers: "*", methods: "*", SupportsCredentials = true)]
- 在后端,将AllowCredentials或SupportsCredentials属性设置为true
- 在后端,不要将通配符(
)放在允许源代码中。添加您的前端URL*
services.AddCors(c =>
{
c.AddPolicy("AllowOrigin",
options => options
.WithOrigins("http://localhost:4200") //Important
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials() //Important
);
});
或
.NET 4.6
[EnableCors(origins: "http://localhost:4200", headers: "*", methods: "*", SupportsCredentials = true)]
谢谢你的评论,但很遗憾……不,这不是cors策略,因为我已经这样配置了。我现在更新了我的问题,做了一些更改,你能不能像这样添加
SupportsCredentials
。。实际上,我在.NET 4.6中实现了相同的功能,而不是Core。我的库中没有Microsoft.AspNet,只有AspNetCore。另外,我认为AllowCredentials()和SupportCredentials是相同的,只是.NET版本不同。可能问题是服务器和客户端都在VPN下。嗯。。可能是。。希望您能找到解决方案:)谢谢您的评论,但遗憾的是..不,这不是cors策略,因为我已经这样配置了它。我现在更新了我的问题,做了一些更改,你能不能像这样添加SupportsCredentials
。。实际上,我在.NET 4.6中实现了相同的功能,而不是Core。我的库中没有Microsoft.AspNet,只有AspNetCore。另外,我认为AllowCredentials()和SupportCredentials是相同的,只是.NET版本不同。可能问题是服务器和客户端都在VPN下。嗯。。可能是。。希望您能找到解决方案:)
[EnableCors(origins: "http://localhost:4200", headers: "*", methods: "*", SupportsCredentials = true)]