用于ASP.NET API和Node.js网站的Windows身份验证

时间:2018-10-25 18:02:52

标签: c# asp.net node.js iis-8.5 iisnode

我有一个使用http-proxy-middleware托管在nodejs上的网站,在该网站中,我将所有api调用代理到ASP.NET API。

我将ASP.NET api部署在远程IIS服务器(不是在我的计算机上,而是在域中)上,并且仅使用NTLM进行Windows身份验证,并且我在web.config中拥有它:

<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
    <authentication mode="Windows" /> 
</system.web>

当我在本地IIS服务器上(在我的计算机上)设置我的网站并将其身份验证设置为匿名时,这可以正常工作,没有登录弹出窗口。

使用NTLM身份验证从邮递员调用api也可以正常工作。

但是,当我将网站部署到远程IIS服务器时,我可以毫无问题地打开网站,但是当网站查询API时,我得到一个不接受我的凭据(mydomain\myusername)的登录弹出窗口,它将代替在chrome中一次又一次显示弹出窗口,但在IE中尝试3次并返回401未经授权的错误后就会停止。

因为这在本地可行,所以我认为问题一定在IIS服务器上,但是我无法弄清楚是什么。

1 个答案:

答案 0 :(得分:0)

IIS服务器出现问题,当试图解决该问题时,我经常在匿名身份验证和Windows身份验证之间切换,但是除非后来我通过在命令控制台中编写iisreset /noforce来重新启动IIS,否则更改将不起作用

通过在远程IIS上执行此操作,就像在本地IIS上一样工作。