Par défaut dans Startup.Auth.cs de fichiers, il y aura quelque chose comme ceci:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Main/Account/Login"),
CookieName = "OwinAuthCookie",
});
Lorsque vous activez l'authentification de base dans IIS, voici ce qui se passe:
- Module IIS de base d'authentification voit qu'il n'y a pas d'en-tête d'authentification, il renvoie un
HTTP 401 Response
.
- La réponse n'est pas retournée immédiatement, mais est traitée par Owin.
- Owin voit la demande a obtenu
401 (Unauthorized) Response
, il redirige vers le LoginPath
configuré.
- Votre navigateur traite la redirection, tente d'ouvrir la nouvelle URL et nous sommes de retour au point 1. Et theres est la boucle.
Ce que vous pouvez faire est de commenter la propriété LoginPath dans le code ci-dessus. Cela devrait arrêter la boucle de redirection, mais peut aussi (mais ne doit pas, selon votre implémentation) briser l'authentification pour les utilisateurs de l'application. En fin de compte, j'ai finalement implémenté un petit middleware Owin et fait moi-même l'authentification de base.
Ces liens pourraient être utiles:
Je l'ai fait aussi. J'ai créé une page pour authentifier l'utilisateur et désactivé l'authentification de base. – Fabio