Comment puis-je mettre en œuvre suivante dans l'application ASP.NET MVC:Comment prendre en charge l'authentification NTLM avec fallback pour se former dans ASP.NET MVC?
- utilisateur ouvre un site intranet
- utilisateur est silencieusement authentifié si possible
- si l'authentification NTLM n'a pas fonctionné, formulaire de connexion show à l'utilisateur
- utilisateur indiquent connecter mot de passe et le domaine de sélection dans la liste de domaines prédéfinis
- utilisateur est authentifié dans le code en utilisant AD
Je sais implémenter 4 et 5 mais je ne trouve pas d'informations sur la façon de combiner NTLM et les formulaires. Ainsi, cette boîte de dialogue de connexion/mot de passe NTLM natif n'est jamais affichée - authentification transparente ou page de connexion agréable.
Comment devrait fonctionner? Faut-il demander à l'utilisateur un identifiant et un mot de passe? Est-ce que ses informations d'identification actuelles (nom d'utilisateur du domaine) peuvent être utilisées sans demander à entrer le nom d'utilisateur et le mot de passe?
Mise à jour pour ces derniers, enquête même problème:
Quand je demandais ce que je n'était pas complètement comprendre comment fonctionne l'authentification NTLM interne. Il est important de comprendre ici que si le navigateur de l'utilisateur ne supporte pas NTLM correctement ou si le support NTLM est désactivé par l'utilisateur, le serveur n'aura jamais l'occasion de contourner ce problème.
Comment l'authentification Windows fonctionne:
- client envoie une requête HTTP régulière au serveur
- Server répond avec l'état HTTP 401 et l'indication que l'authentification NTLM doit être utilisé pour accéder aux ressources
- client envoyer NTLM Message de type 1
- Le serveur répond avec le message NTLM Type2 avec le défi
- Le client envoie le message Type3 avec la réponse au défi
- Server répond avec le contenu réel demandé
Comme vous le voyez, le navigateur ne supportant pas NTLM ne passera pas à l'étape (3), au lieu utilisateur sera affiché IIS généré erreur 401 page.
Si l'utilisateur n'a pas d'informations d'identification, après l'annulation de l'authentification NTLM, le navigateur de fenêtre de dialogue contextuel ne continuera pas à (3) également. Nous n'avons donc aucune chance de rediriger automatiquement les utilisateurs vers une page de connexion personnalisée.
La seule option ici est d'avoir une page "passerelle" où nous décidons si l'utilisateur doit supporter NTLM et si c'est le cas, rediriger vers la page d'accueil protégée NTLM.
Si ce n'est pas le cas, affichez le formulaire de connexion et autorisez l'authentification en entrant manuellement le nom d'utilisateur et le mot de passe.
La décision est généralement prise en fonction de l'adresse IP et/ou du nom d'hôte des utilisateurs, soit en faisant correspondre les plages d'adresses IP, soit en consultant le tableau des adresses IP prédéfinies.
http: // stackoverflow. com/questions/492977/anonymous-access-et-ntlm-authentication-in-iis –