7
votes

Comportement d'authentification Windows étrange IIS

J'ai un service Web ASP.NET 3.5 (ancienne SOAP école, pas WCF) en cours d'exécution sur deux serveurs mis en place de manière identique dans IIS 6.0. Le contrôle d'authentification / accès est défini comme suit:

  • Activer l'accès anonyme = False li>
  • Authentification Windows intégrée = True li>
  • Authentification Digest pour les serveurs de domaine Windows = False li>
  • Basic authentification = False li>
  • Authentification .NET Passport = False li> Ul>

    Dans l'une des méthodes web, je dois obtenir l'identité de l'utilisateur demandeur et valider qu'il est dans un certain groupe Active Directory. Ainsi, la première ligne de code dans la méthode Web est la suivante: p>

    <authorization>
        <deny users="?" />
        <allow users="*" />
    </authorization>
    


0 commentaires

5 Réponses :


2
votes

dans le Web.config sur Server2, avez-vous: Mode d'authentification = "Windows"?


4 commentaires

Oui, les deux web.configs ont ceci.


Peu de choses à vérifier: 1. Vérifiez que "Activer l'accès anonyme" est false sur le répertoire virtuel et les répertoires internes. 2. Tout autre web.configs dans des annuaires internes?


J'ai trouvé quelques répertoires virtuels sur Server2 qui avaient accès anonyme activé et corrigé ce problème. J'ai également vérifié tous les fichiers web.config dans des répertoires internes et tous ont été définis sur "Windows" sans d'autres facteurs primordiaux. Le problème persiste. Le service Web de Server2 partage un pool d'applications avec d'autres sites Web permettant un accès anonyme. Cela pourrait-il faire partie du problème?


J'ai changé la configuration du pool d'applications afin qu'elle soit identique à Server1, et cela se produise toujours, alors je suppose que c'est trop.



2
votes

Etant donné que iusR _ * est l'utilisateur anonyme par défaut et l'accès anonyme est désactivé dans IIS, il semble que l'accès anonyme est activé dans votre web.config. Assurez-vous que la section autorisation de votre web.config semble similaire à celle-ci: xxx


7 commentaires

Ni web.config n'avaient une section autorisation . J'ai ajouté exactement ce que vous avez posté aux deux. Maintenant, Server1 se comporte de même (correctement) et Server2 jette une exception non autorisée 401.2. Je vais mettre à jour le message d'origine avec ces informations.


Merci pour la mise à jour. Dans ce cas, L'authentification Windows échoue pour une raison quelconque. Puisque Server2 ne peut plus revenir à l'accès anonyme, il jette une erreur. Votre client est-il configuré correctement? Regardez ce document: MSDN.MICROSOFT.COM/EN-US/LIBRAY /bfazk0tb.aspx


Oui, le client est configuré correctement. En réalité, ce sont des serveurs "tests", donc j'utilise le formulaire de test de services Web sur les deux serveurs. Mais le client réel est l'impression d'un utilisateur de domaine et les mêmes résultats se produisent.


Merci. :-) Hmm ... Les clients et le serveur2 sont dans le même domaine, non?


C'est correct. Tous les clients, Server1 et Server2 sont dans le même domaine.


Un problème assez difficile; Et je pense que cela n'a rien à voir avec le fait que vous exécutez un service Web SOAP (qui peut être testé facilement: ajoutez simplement une page ASPX «simple» à votre projet Web). Un autre essai: est-ce que c'est-à-dire reconnaître serveur2 comme "zone intranet locale"? (Doit être visible dans le coin droit de la barre d'état.)


Oui, les deux serveurs apparaissent comme "intranet local". Je pense qu'à ce stade, je vais essayer d'essuyer l'ensemble de la configuration IIS sur Server2 et de recommencer. Merci encore pour votre aide.



0
votes

Malheureusement, je n'ai jamais eu à la racine de ce problème. Nous avons fini par déplacer sur de nouveaux serveurs et avec une configuration IIS fraîche sur les deux, ce problème s'est éloigné. Je soupçonne que cela a peut-être eu quelque chose à voir avec la manière dont les NIC ont été configurés sur le serveur, car il s'agissait d'un serveur virtuel avec plusieurs Nics. Mais je ne sais toujours pas avec certitude. Merci encore à Heinzi et Consultutah pour leur aide.


1 commentaires

Éventuellement hérité des différences de configuration à partir de root Webconfig, de la machine.config ou d'une autre?



1
votes

J'ai eu le même problème avec IIS7 sur un serveur virtuel, mon identifiant dirigeait vers un dossier appelé "contenu". Dans ma configuration Web, il y avait une section "Emplacement" contenant des formulaires Paramètres de l'authentification. Cependant, je l'ai configuré pour l'authentification Windows. Ainsi, lorsque IIS a frappé mon dossier de contenu, il ne savait pas quelle authentification à utiliser, alors renvoyé l'erreur. Après avoir supprimé cela de la configuration, cela fonctionnait bien:

<location path="content">
    <system.web>
        <authorization>
            <deny users="?" />
            <allow users="*" />
        </authorization>
    </system.web>
</location>


0 commentaires

10
votes

Je créais une nouvelle application Web ASP.NET MVC 4 et a rencontré exactement la même erreur que vous (erreur 401.2) lorsque j'ai essayé de construire mon projet pour la première fois.

J'ai changé les options du gestionnaire IIS sur ma machine de développement pour désactiver l'authentification anonyme et activer l'authentification Windows, mais j'avais toujours l'erreur 401.2.

J'ai fait une petite recherche et j'ai découvert que je pourrais changer les propriétés de mon projet et résoudre cette erreur.

Explorateur de solution:

  • Sélectionnez votre projet
  • Appuyez sur F4 pour afficher la fenêtre Propriétés

    Propriétés Fenêtre:

    • Changer 'Authentification anonyme' sur 'Disabled'
    • Changer 'Authentification Windows' sur "Activé"

      J'espère que cela aidera d'autres personnes s'il ne résout pas votre problème spécifique. Tant que vous avez les mêmes paramètres sur votre serveur Web, cela devrait fonctionner comme prévu.


2 commentaires

Travaillé pour moi, merci. Strange Comment il n'est pas défini comme ça depuis le début lorsque vous sélectionnez le modèle MVC 'Intranet Site' qui utilise l'authentification Windows.


Super merci. Quelque chose de si simple ... D'accord avec Lefty - aurait senti sens si les paramètres étaient automatiquement ajustés avec le site intranet.