120 votes

La réception de l'invite de connexion utilisant l'authentification windows intégrée

J'ai un .NET 3.5 application qui s'exécute sous IIS 7 sur Windows 2003 serveur et ne peut pas obtenir l'authentification intégrée de windows fonctionne correctement tant que je continue de recevoir des invités pour une connexion. J'ai mis de l'Authentification Windows pour activé dans IIS avec tous les autres types de sécurité désactivé et mon application web.fichier de configuration de l'authentification/autorisation est fixé comme suit:

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
    <authenticationmode="Windows"/>
    <authorization>
    <deny users = "?" />
    </authorization>
</system.web>

Avec cette configuration, j'attends derrière la scène de la vérification de l'utilisateur de Windows pour permettre l'accès et de nier les utilisateurs anonymes. Cependant, ce que j'obtiens est un Windows pop-up de connexion lorsque j'essaie d'accéder au site.

J'ai été à la résolution de ce problème depuis quelques jours maintenant et ne peut pas comprendre le problème. Basé sur les postes avec des problèmes similaires, j'ai confirmé mon URL n'incluent pas les périodes, une double vérification que mon IE qui définit les paramètres pour Activer l'Authentification Intégrée de Windows, et a également ajouté l'adresse de ma page de mes sites intranet, mais toujours obtenir le pop-up.

Pour dépanner, j'ai activé l'Authentification Anonyme dans IIS et modifié mon site web.fichier de configuration pour ce qui me permet de droite et ensuite ajouté Réponse.Écrire(Système D'.De sécurité.Principal.WindowsIdentifity.getcurrent().de l'utilisateur.nom.toString()) pour essayer de voir ce que l'utilisateur est utilisé lors de l'authentification. Le résultat que j'obtiens est IIS APPPOOL\myapp qui est évidemment le pool d'applications IIS pour mon application.

J'ai vraiment apprécier l'aide n'importe qui peut fournir de sorte que je suis encore en utilisant uniquement l'authentification windows, mais ne pas obtenir le pop-up et de l'authentification windows est effectuée par rapport à l'effectif de l'utilisateur de Windows.

Merci.


Note supplémentaire après un dépannage:

Viens de remarquer que lorsque la connexion échoue et le Windows invite de connexion s'affiche à nouveau, il affiche le nom d'utilisateur qui a tenté de se connecter comme "SERVERNAME"\"nom d'utilisateur", ce qui m'a amené à croire qu'il était en train de valider l'utilisateur sur le serveur vs le domaine. Pour confirmer cela, j'ai créé un compte d'utilisateur local directement sur le serveur d'applications avec le même nom d'utilisateur et le mot de passe que le réseau d'utilisateur de domaine et a essayé de se connecter à nouveau. Le résultat a été que j'ai reçu l'invite de connexion à nouveau, mais quand je suis entré le nom d'utilisateur et le mot de passe, cette fois, j'ai été en mesure de succès de la connexion. Le réseau de l'utilisateur et le serveur d'application sont sur le même domaine, donc vraiment pas pourquoi l'authentification IIS vers le local de l'application serveur de comptes et de ne pas les comptes de domaine. Je réalise que c'est un IIS question à ce point pour que l'affichage sur forums.iis.net mais apprécie tous les conseils que vous pourriez avoir depuis ont été la résolution de ce pour jours.

68voto

subkamran Points 1555

Seulement pour d'autres gens. Si l'erreur est une 401.1 Unauthorized et votre code d'erreur correspond 0xc000006d, alors vous êtes effectivement en cours d'exécution dans une sécurité la "fonctionnalité" qui bloque les demandes de nom de domaine complet ou personnalisé en-têtes d'hôte qui ne correspondent pas à votre nom de la machine locale:

Suivez cet article de l'assistance pour résoudre le problème:

http://support.microsoft.com/kb/896861

Ce un m'a fallu un certain temps parce que tout le monde les commentaires ici pas réussi à m'aider. J'ai trouvé cet article et il a fixé!

27voto

Daudi Points 151

J'ai eu un problème similaire, avec lequel je voulais protéger seulement une certaine partie de mon site web. Tout a bien fonctionné sauf dans IE. J'ai à la fois Anonyme et l'Authentification Windows est activé. Pour l'Anonyme, l'Identité est définie à l'identité du Pool d'Applications. Le problème était avec l'Authentification Windows. Après quelques recherches, j'ai tiré, le violoneux, et trouvé que c'était à l'aide de Kerberos comme le fournisseur (en fait, il est fixé à Négocier par défaut). Je l'ai mis à NTLM et qu'il fixe. HTH

Daudi

20voto

Harry Points 51

Ajouter la permission [d'Utilisateurs de Domaine] pour votre sécurité sur le web.

  • Cliquez droit sur votre site dans IIS sous le dossier Sites
  • Cliquez Sur Modifier Les Autorisations...
  • Sélectionnez l'onglet Sécurité
  • Sous le Groupe ou les noms d'utilisateur section, cliquez sur le bouton Modifier...
  • Dans les Autorisations de pop-up, sous les noms d'utilisateur ou Groupe cliquez sur Ajouter...
  • Entrez [Domain Users] dans les noms des objets à sélectionner la zone de texte et cliquez sur OK pour appliquer la modification
  • Cliquez sur OK pour fermer les Autorisations pop up
  • Cliquez sur OK pour fermer les Propriétés de pop up et d'appliquer vos nouveaux paramètres

11voto

Slo Points 61

Ne créez pas des erreurs sur votre serveur en changeant tout. Si vous avez windows invite d'ouverture de session lorsque vous utilisez l'Authentification Windows 2008 R2, il suffit d'aller à Providers et déplacez - NTLM pour chaque votre demande. Lors de l' Negotiate est premier dans la liste, l'Authentification Windows peut cesser de travailler bien pour une application spécifique sur 2008 R2 et vous pouvez être invité à entrer le nom d'utilisateur et le mot de passe que jamais de travail. Qui arrive lorsque vous faites une mise à jour de votre application. Juste être sûr que NTLM est le premier sur la liste et vous ne verrez jamais ce problème.

4voto

Dante Points 1985

Peuvent être liés au navigateur. Si vous utilisez IE, vous pouvez aller à Paramètres Avancés et cochez vous "Activer l'Authentification Intégrée de Windows" est bien coché.

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