C# 使用Windows身份验证(NTLM身份验证)热加载代理IIS Express的Web包开发服务器

C# 使用Windows身份验证(NTLM身份验证)热加载代理IIS Express的Web包开发服务器,c#,asp.net,reactjs,iis,webpack-dev-server,C#,Asp.net,Reactjs,Iis,Webpack Dev Server,我使用Windows身份验证创建了一个新的ASP.NET Web应用程序->Web API 2项目。这在IIS Express中运行良好,但为了使我的React前端获得热重新加载,我已尝试使用webpack dev server,并让它代理我的IIS Express。我以前在cookie身份验证和令牌(承载)身份验证中都使用过这种方法,但在Windows身份验证(NTLM身份验证)中它不起作用 查看服务器的响应,我得到了预期的401unauthorized(401.2)响应,标题为www-aut

我使用Windows身份验证创建了一个新的
ASP.NET Web应用程序
->Web API 2项目。这在IIS Express中运行良好,但为了使我的React前端获得热重新加载,我已尝试使用
webpack dev server
,并让它代理我的IIS Express。我以前在cookie身份验证和令牌(承载)身份验证中都使用过这种方法,但在Windows身份验证(NTLM身份验证)中它不起作用

查看服务器的响应,我得到了预期的
401unauthorized(401.2)
响应,标题为
www-authenticate:Negotiate,NTLM
,与预期一致,但我认为客户端不会使用
Authorization:NTLM
重新发送请求

我使用过的浏览器(Chrome、Firefox和IE)也不会正常提示我输入正确的凭据

我在webpack.config.js中的设置如下所示:

var proxy = 'localhost:57263';

devServer: {
    proxy: {
        '*': {
            target: 'http://' + proxy,
            changeOrigin: true,
        },
        port: 8080,
        host: '0.0.0.0',
        hot: true,
    },
}

在查看了
webpack dev server Proxy
的文档后,我发现它们使用
http代理中间件

这让我找到了这条线索并回答:

最终解决方案:

运行:

工作代码:

var proxy = 'localhost:57263';

devServer: {
    proxy: {
        '*': {
            target: 'http://' + proxy,
            changeOrigin: true,
            agent: new agent({
                maxSockets: 100,
                keepAlive: true,
                maxFreeSockets: 10,
                keepAliveMsecs: 100000,
                timeout: 6000000,
                keepAliveTimeout: 90000 // free socket keepalive for 90 seconds
            }),
            onProxyRes: (proxyRes) => {
                var key = 'www-authenticate';
                proxyRes.headers[key] = proxyRes.headers[key] && proxyRes.headers[key].split(',');
            },
        },
        port: 8080,
        host: '0.0.0.0',
        hot: true,
    },
}

在查看了
webpack dev server Proxy
的文档后,我发现它们使用
http代理中间件

这让我找到了这条线索并回答:

最终解决方案:

运行:

工作代码:

var proxy = 'localhost:57263';

devServer: {
    proxy: {
        '*': {
            target: 'http://' + proxy,
            changeOrigin: true,
            agent: new agent({
                maxSockets: 100,
                keepAlive: true,
                maxFreeSockets: 10,
                keepAliveMsecs: 100000,
                timeout: 6000000,
                keepAliveTimeout: 90000 // free socket keepalive for 90 seconds
            }),
            onProxyRes: (proxyRes) => {
                var key = 'www-authenticate';
                proxyRes.headers[key] = proxyRes.headers[key] && proxyRes.headers[key].split(',');
            },
        },
        port: 8080,
        host: '0.0.0.0',
        hot: true,
    },
}

嗨,Ogglas,我如何让IISExpress和webpackdevserver一起工作。这里是我面临的问题。非常感谢Ogglas,我如何让IISExpress和webpackdevserver一起工作。这里是我面临的问题,任何帮助都是非常感谢的