8
votes

IIS 7.5 invite un nom d'utilisateur et un mot de passe

Notre application est configurée pour utiliser l'authentification par formulaires, et sur la plupart des machines, il fonctionne très bien. Cependant, je suis un problème avec l'environnement de développement sur l'un de nos postes de travail de développement. Quand je vais à l'une des URL de l'application, comme ceci:

http: //iweb.local/reports/ p>

IIS me demande un mot de passe, comme ceci: p>

IIS invites pour un nom d'utilisateur et mot de passe p>

(nom iweb.local code> est mis en place dans le fichier hosts pour pointer vers 127.0.0.1. Essentiellement, il est un alias pour localhost. nous configurons le site IIS pour utiliser un en-tête d'hôte afin que nous puissions éventuellement prendre en charge plus d'une application à l'avenir.) em> p>

Je ne suis pas invité à entrer un mot de passe si je aller à la plupart des autres URL dans l'application, comme http: //iweb.local/ . Et je ne suis pas invité à entrer un mot de passe partout en utilisant la base même code exact sur une autre machine de développeur. Il est seulement cette machine qui a le problème. Cela conduit moi d'être raisonnablement sûr que ce n'est pas un problème avec le codage. P>

Ce que j'ai essayé: p>

  • Test avec un autre navigateur Web. Sur la machine présentant le problème, le problème se produit peu importe quel navigateur que je utilise. Je reçois le même message dans FireFox et IE9. Li>
  • Test sur d'autres machines de développement. Le problème ne se produit pas sur ceux-ci. Il ne se produit que sur la seule boîte de développeur. Li>
  • Copier le code et les actifs de ~ / zones / Rapports code> dans ~ / zones / ReportsTest code>, avec les refactors appropriés, et le chargement http: // iweb .local / reportstest / code>. Ça marche; le navigateur invites ne sont plus pour un nom d'utilisateur et mot de passe. Toutefois, la modification de l'URL est pas une option pour notre application. Li>
  • Vérification IIS configuration d'authentification. L'authentification anonyme et l'authentification par formulaire sont activés. Tout le reste est désactivé. Ceci est identique sur toutes les machines de développement, y compris ceux qui travaillent et celui qui ne le fait pas. Li>
  • Vérification du journal des événements. IIS est rien journalisation dans le journal des événements. Li>
  • Vérifier les journaux IIS. Les journaux contiennent des entrées pour les requêtes réussies (comme quand je l'ouvre http: //iweb.local code>)., Mais il n'enregistre rien pour toutes les requêtes qui invite l'utilisateur à saisir un mot de passe li>
  • Vérification des en-têtes de requête et de réponse avec Firebug. Les en-têtes de demande semblent identiques pour une requête soit URL. Les en-têtes de réponse http: //iweb.local/reports code> a deux options pour WWW-Authenticate code>: Negotiate code> et NTLM code>. De là, je l'ai confirmé que IIS dirige le navigateur à demander un mot de passe. Mais je ne suis pas près de comprendre pourquoi. Li>
  • Mise hors IIS, la mise en service de publication Web pour un type de démarrage manuel afin qu'il ne démarre pas automatiquement, et redémarrer l'ordinateur. Je puis vérifié pour voir si l' http: //iweb.local code> ou http: //iweb.local/reports/ code> ont donné suite aux demandes. Ni étaient, confirmant qu'il est IIS qui gère les demandes. Li>
  • Arrêter IIS, supprimer l'ensemble du projet à partir du disque dur du développeur, et le récupérer du contrôle de source. Ma pensée était que ce pourrait être une question d'autorisation sur l'un des dossiers (bien que je ne comprends pas comment cela pourrait être, étant donné que c'est une application MVC) et passer par ce processus assurerait que tous les dossiers avaient le bon autorisations. Mais il n'a pas changé quoi que ce soit. Li>
  • désinstaller complètement IIS, le redémarrage de l'ordinateur et réinstaller IIS. Cela ne fonctionne pas non plus. Li> Ul>

    Je suis d'idées. Je ne peux pas trouver quoi que ce soit sur cette une boîte développeur qui n'est pas configuré la même chose que les autres boîtes de développement. P>

    Est-ce que quelqu'un connait un moyen pour permettre à un niveau plus profond de l'exploitation forestière ou le suivi pour savoir pourquoi IIS demande un mot de passe? Quelqu'un peut-il penser à tout ce qui peut être la cause que je ne l'ai pas déjà cherché? Strong> p>

    est une application ASP.NET MVC 3 en cours d'exécution sur IIS 7.5 dans un environnement 64 bits. Rapports code> de l'URL est configuré comme une zone MVC. P>

    UPDATE strong> p>

    Dans mon fichier web.config, ce est de savoir comment le mode d'authentification est mis en place sur la machine incriminée. élément p>

    <authentication mode="Forms">
        <forms loginUrl="~/account/login" timeout="2880" />
    </authentication>
    


15 commentaires

Pourrait être défini dans votre web.config?


N ° dans le web.config principal, l'élément est défini sur Formulaires. Il n'y a pas de dans le web.config pour la zone.


Peut-être que ce n'est pas la page elle-même mais certains actifs comme JS ou CSS causés par des autorisations NTFS? Avez-vous 401 si vous appuyez sur Annuler? Avez-vous également essayé IIS Express?


@Ramunas, c'était ma pensée lorsque j'ai supprimé tout le dossier contenant les fichiers de développement de l'application et essayé de la récupérer autrement du contrôle de la source. Concernant 401: Oui, je reçois toujours un 401 si j'appuie sur Annuler. Re: IIS Express, je n'ai pas essayé ça. Pouvez-vous avoir qui installé le long de l'IIS?


@Charliekilian Oui, IIS Express peut être installé aux côtés de IIS. Utilisez un installateur de plate-forme Web


Le développeur a-t-il installé SQL Server Reporting Services? Je crois que installer un répertoire virtuel de rapports par défaut et je sais qu'il utilise l'authentification AD par défaut.


Si vous cliquez avec le bouton droit de la souris sur le site de IIS et accédez aux paramètres de base, cliquez sur «Paramètres de test». Autorisation et réussite d'authentification?


@MattyTtyTommo, passe-authentification, mais l'autorisation échoue avec "Impossible de vérifier l'accès au chemin". Cependant, cela fait cela sur toutes les machines de développeurs, même celles qui fonctionnent.


Hmmm je suis surpris que cela fonctionne du tout. Essayez de définir l'utilisateur sur le pool d'applications pour être l'utilisateur Windows actuel.


@Ramunas, IIS Express fonctionne bien. Je préférerais de loin avoir les développeurs travaillant de l'installation complète de l'IIS, de sorte que leur environnement de développement correspond à l'environnement de production, mais il est clair que quelque chose ne correspondait pas déjà. En tout cas, c'est une solution de contournement pour le moment.


@MATTYTTYTTYMOMS Voulez-vous définir l'utilisateur de la piscine d'app pour être l'utilisateur qui est connecté?


@Charliekilian c'est juste ouais.


@Charliekilian Savez-vous que les paramètres sont héritables dans le site Web d'un site Web? Donc, c'est peut-être que la demande est-elle elle-même.


@Charliekilian pourriez-vous résoudre ce problème? Je semble être confronté au même problème.


J'ai aussi eu le même problème, je pense qu'il y a quelque chose avec le nom de dossier qui est "Rapports", je peux accéder à tous les fichiers d'autres dossiers, mais pas les fichiers du dossier "Rapports". Je viens de changer le nom du dossier et tout est bon


3 Réponses :


0
votes

Utilisez Fiddler ou les outils DEV dans IE9 pour regarder la demande. Cela montrera ensuite quoi dans l'en-tête causant la fenêtre contextuelle. Il pourrait être une auth de base ou une authentification NT où le navigateur est incapable de remplir la demande. Comme il est localisé à la machine une machine, cochez la case IIS est configurée pour être anonyme uniquement et vérifier les autorisations du fichier à demander.


0 commentaires

10
votes

S'il y a un dossier dans l'application nommée "Rapports" et SQL Server Server Server Server Server Server Server Server Server Server Server Server Server Server Dossier de répertoire virtuel qui est également nommé "Rapports" sera en conflit avec le dossier "Rapports" de l'application. . Pour corriger ce responsable des services de reporting Open Reporting Configuration Manager (Démarrer-> Tous les programmes-> MS SQL Server-> Configuraton Tools-> Reporting Services Configuration Manager) et modifiez le répertoire virtuel de "Rapports" à tout autre nom ("Testreports") sous le "URL du gestionnaire de rapports" dans le menu de gauche.

Cela résoudra le problème d'authentification IIS


3 commentaires

Il suffit de souligner que le paramètre "Signaler Manager URL" est différent du paramètre "URL de service Web". Je n'ai pas remarqué qu'il y avait 2 réglages d'URL et je n'ai pas confondu quand il n'a pas corrigé le problème après avoir changé le mauvais.


Cela peut aider (désactiver les services de reporting): msdn.microsoft.com/en-us/library/...


Cela me faisait paniquer, pensait que c'était quelque chose à voir avec les autorisations. Merci!



0
votes

Dans la barre d'emplacement, tapez à propos de: config et appuyez sur Entrée.

Le point sur: config "Ceci pourrait annuler votre garantie!" La page d'avertissement peut apparaître. Cliquez sur JE SERAIRE SOIDE, je vous promets!, Pour continuer à propos de: Page de configuration.

Dans la page About: configuration, recherchez le réseau préférentiel.Automatic-NTLM-Auth.Trusted-URIS et double-cliquez dessus. Dans l'invite qui apparaît, tapez une liste de serveur que vous souhaitez autoriser, séparé par une virgule et un espace. Par exemple, si vous vouliez autoriser http: // myinternalServer et HTTP: // UNNERININERNERNERVER , vous saisiriez MyInternalServer, un autre autre. Appuyer sur OK.


0 commentaires