106 votes

Problème d'authentification lors du débogage dans VS2013 - IIS Express

Je tente de récupérer le nom d'utilisateur Windows lors du débogage dans Visual Studio 2013. Je utilise simplement:

httpcontext.current.user.identity.name

Si je lance cela sur mon serveur Dev, cela fonctionne bien, si je le lance en mode débogage sur n'importe quelle version antérieure de Visual Studio, cela fonctionne aussi bien.

Mon problème est - Si je lance cela sur Visual Studio 2013, je reçois une chaîne vide.

Mon web.config est le suivant:

218voto

user3149240 Points 531

J'avais juste mis à niveau vers VS 2013 à partir de VS 2012 et l'identité de l'utilisateur actuel (HttpContext.User.Identity) apparaissait comme anonyme.

J'ai essayé de changer le fichier applicationhost.config de IIS Express, sans différence.

La solution a été de regarder les propriétés du projet web, appuyez sur F4 pour obtenir les propriétés du projet lorsque vous avez sélectionné le niveau supérieur du projet. Ne cliquez pas avec le bouton droit sur le projet et sélectionnez les propriétés, c'est quelque chose d'entièrement différent.

Changer l'authentification anonyme pour la désactiver et l'authentification Windows pour l'activer.

Fonctionne comme sur des roulettes :)

10 votes

Merci pour cela. Je ne peux pas croire qu'ils l'aient ajouté comme une 'amélioration'. C'est ce pour quoi sert web.config. Maintenant, nous ne pouvons pas faire confiance à ce que nous voyons dans web.config. Brillant.

4 votes

Je crois que c'est une meilleure approche que la réponse acceptée, car cela n'affecterait pas les autres applications s'exécutant sur IIS Express.

0 votes

Merci beaucoup. Cela a également fonctionné pour moi ! C'était un projet Visual Studio 2008 que j'ai mis à niveau vers Visual Studio 2013.

130voto

Neil Watson Points 943

En cherchant, j'ai trouvé ma réponse, mais je ne la trouve pas sur internet, alors j'ai pensé partager ceci :

J'ai résolu mon problème en modifiant mon fichier applicationhost.config. Mon fichier était enregistré dans le dossier "\Mes Documents\IISExpress\config".

Il semble que VS2013 ignorait mon fichier web.config et appliquait des méthodes d'authentification différentes.

J'ai dû modifier cette partie du fichier pour qu'elle ressemble à ce qui suit. En vérité, j'ai seulement modifié l'authentification anonyme pour la mettre en mode false et l'authentification Windows en mode true.

2 votes

J'ai dû faire cela pour que le débogage dans VS2013 en utilisant IIS Express fonctionne de manière fiable. Sans cela, cela semblait fonctionner une fois, puis produisait une erreur 401 ensuite. (1) Y a-t-il une commande AppCmd qui modifierait le fichier applicationhost.config, et (2), F4 sur le projet Web me permet de désactiver l'authentification anonyme et d'activer l'authentification Windows. Le faire dans VS2012 fonctionnait bien, dans VS2013 ne crée pas un environnement de développement sans erreur 401.

4 votes

@Neil, tu m'as sauvé la journée. BTW: Il n'est pas nécessaire de désactiver anonymousAuthentication. Il suffit d'activer windowsAuthentication. Ces paramètres contrôlent les mécanismes d'authentification que les sites web sont autorisés à utiliser.

0 votes

+1 aussi... j'ai essayé de résoudre ce problème persistant depuis un certain temps avec mon instance IISExpress local

41voto

ThaNet Points 141

Dans Visual Studio 2013 ET VS15 (mais je suppose que c'est la même chose pour toutes les autres versions), appuyez simplement sur F4 et modifiez ces deux propriétés : - Authentification anonyme : Désactiver - Authentification Windows : Activer

1 votes

Merci pour ça. Je n'arrive pas à croire qu'ils aient ajouté cela comme une 'amélioration'. C'est pour ça que le web.config existe. Maintenant, nous ne pouvons plus faire confiance à ce que nous voyons dans web.config. Brillant.

1 votes

Vous venez de m'éviter de retourner à Visual Studio 2010 !

2 votes

Je ne peux pas croire que cette question/réponse n'était pas la première de tous ces messages SO qui continuent de parler des paramètres IIS

38voto

James Pressley Points 201

Dans VS2013, appuyez sur F4 sur votre projet pour afficher la fenêtre des propriétés et désactiver l'accès anonyme et activer "l'authentification Windows"

Ensuite, cela fonctionnera. Pas besoin de changer quoi que ce soit d'autre

0 votes

Frustrant, cette option existe lorsqu'on veut déboguer un projet web, mais n'existe pas pour les projets de Service. Grrrr...

6voto

ScottLenart Points 472

Vous pourriez également modifier les propriétés du projet pour votre projet web, choisir "Web" dans les onglets de gauche, puis modifier le menu déroulant Serveurs en "IIS Local". Créez un nouveau répertoire virtuel et utilisez le gestionnaire IIS pour configurer votre site/app pool comme vous le souhaitez.

Je préfère cette méthode, car vous auriez généralement un répertoire virtuel IIS local (ou un site) pour tester localement. De cette façon, vous n'affecterez pas d'autres sites.

Propriétés du projet web

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