3 votes

IIS-Windows-Authentication bloqué dans une boucle infinie

J'essaie d'accéder à une ancienne API ASP.NET (API 1) via Angular 8. En raison de problèmes de CORS, l'accès est géré par un fichier de type proxy.conf.js -Fichier. (Trouvé dans un autre post)

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;

Dans l'application .NET, la seule chose qui fait allusion à l'authentification est la ligne suivante dans le fichier web.config -Fichier.

<authentication mode="Windows" />

Lorsqu'il est compilé et exécuté, le comportement suivant se produit : Un masque de connexion s'affiche et demande une authentification Windows. Si les informations d'identification sont saisies, le masque se ferme et se rouvre instantanément. Ce comportement se poursuit sans fin.

Remarque : l'accès aux points d'accès via la ligne de commande du navigateur fonctionne parfaitement.

2voto

Jalpa Panchal Points 5345

Vous pouvez utiliser la commande PowerShell ci-dessous pour désactiver la vérification rétrospective :

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

après avoir modifié la clé de registre, redémarre la machine.

ou vous pouvez essayer les choses ci-dessous :

mettez ce code dans votre fichier web.config :

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

et assurez-vous que vous définissez NTML comme premier fournisseur.

enter image description here

vérifiez que, sous Paramètres avancés..., la protection étendue est réglée sur Accepter.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X