IIS Windows身份验证陷入无限循环

时间:2019-08-14 13:55:36

标签: asp.net angular iis

我正在尝试通过Angular 8访问旧的ASP.NET-Api(API 1)。由于存在CORS-问题,因此访问是通过proxy.conf.js-文件处理的。 (在另一篇文章中找到)

var Agent = require("agentkeepalive");

var keepaliveAgent = new Agent({
  maxSockets: 100,
  keepAlive: true,
  maxFreeSockets: 10,
  keepAliveMsecs: 1000,
  timeout: 60000,
  keepAliveTimeout: 30000 // free socket keepalive for 30 seconds
});

var onProxyRes = function (proxyRes, req, res) {
  var key = 'www-authenticate';
  proxyRes.headers[key] = proxyRes.headers[key] && proxyRes.headers[key].split(',');
};

const PROXY_CONFIG = [
  {
    target: Application-Url,
    context: "/api/",
    secure: false,
    changeOrigin: true,
    auth: "LOGIN:PASS",
    loglevel: "debug",
    onProxyRes: onProxyRes,
    agent: keepaliveAgent
  }
];
module.exports = PROXY_CONFIG;

在.NET应用程序中,唯一提示身份验证的是web.config-文件中的以下行。

<authentication mode="Windows" />

编译并执行以下行为: 显示一个登录掩码,要求进行Windows身份验证。如果输入了凭据,则掩码会关闭并立即重新打开。这种行为无休止地持续。

注意:通过浏览器的命令行访问api端点非常正常。

1 个答案:

答案 0 :(得分:1)

您可以使用以下PowerShell命令禁用回溯检查:

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword

更改注册表项后,将重新启动计算机。

或者您可以尝试以下操作:

在您的web.config文件中设置以下代码:

<authentication mode="Windows" />
<authorization>
    <allow users="*" />
    <deny users="?" />
</authorization>

并确保将NTML设置为第一个提供程序。

enter image description here

检查“高级设置”下的“扩展保护”是否设置为“接受”。

enter image description here