我有一个angular 8应用程序和一个单独的.net core 3 API,该API具有一些需要Windows身份验证的方法,因为它们必须获取用户身份。 API在https://localhost:44328上运行,而角度应用程序在http://localhost:4100上运行。我有一个代理设置可以解决cors问题,并在API上启用Windows身份验证和匿名身份验证。
我一直遇到的问题是,有角度的应用程序第三次调用控制器上具有[Authorize]属性的API方法后,会随机弹出一个用户名和密码框。我在某处读到这是@ angular-devkit中的build-webpack早期版本中的一个错误,但我现在正在最新版本(0.803.15)上运行,但仍然遇到此问题。有谁知道解决此问题的方法或使用代理的替代方法?
这是我的proxy.cong.js文件。
const Agent = require('agentkeepalive').HttpsAgent;
module.exports = {
'/api': {
target: 'https://localhost:44328/',
secure: false,
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000,
freeSocketTimeout: 90000
}),
changeOrigin:true,
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] && proxyRes.headers[key].split(',');
}
}
};
答案 0 :(得分:1)
如果还有其他人遇到此问题,那是因为我也在使用HTTP拦截器将请求上的withCredentials标志设置为true。我认为这会干扰代理conf文件,因此在开发模式下删除拦截器可以解决此问题。