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>
p>
(nom 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> 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. 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> 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>
~ / 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>
http: //iweb.local code>)., Mais il n'enregistre rien pour toutes les requêtes qui invite l'utilisateur à saisir un mot de passe li>
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>
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>
Rapports code> de l'URL est configuré comme une zone MVC. P>
<authentication mode="Forms">
<forms loginUrl="~/account/login" timeout="2880" />
</authentication>
3 Réponses :
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. P>
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. P>
Cela résoudra le problème d'authentification IIS p>
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!
Dans la barre d'emplacement, tapez à propos de: config et appuyez sur Entrée. p>
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. p>
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. p>
Pourrait code> être défini dans votre web.config?
N ° dans le web.config principal, l'élément code> est défini sur Formulaires. Il n'y a pas de code> 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