J'essaie de récupérer le nom d'utilisateur Windows lors du débogage dans Visual Studio 2013. J'utilise simplement:
httpcontext.current.user.identity.name
Si je l'exécute sur mon serveur de développement, cela fonctionne bien, si je l'exécute en mode débogage sur une version précédente de Visual Studio, cela fonctionne également très bien.
Mon problème est - Si j'exécute ceci sur Visual Studio 2013, j'obtiens une chaîne vide.
Ma configuration Web est la suivante.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
En recherchant ceci, j'ai trouvé ma réponse, mais je ne trouve pas la réponse sur Internet, alors j'ai pensé partager ceci:
J'ai résolu mon problème en modifiant mon fichier applicationhost.config. Mon fichier a été enregistré dans le dossier "\ Mes documents \ IISExpress \ config".
Il semble que VS2013 ignorait mon fichier web.config et appliquait différentes méthodes d'authentification.
J'ai dû modifier cette partie du fichier pour qu'elle ressemble à celle ci-dessous. En vérité, je n'ai modifié que l'anonymousAuthentication pour être false et le mode windowsAuthentication sur true.
la source
anonymousAuthentication
. Il suffit de s'allumerwindowsAuthentication
. Ces paramètres contrôlent les mécanismes d'authentification que les sites Web sont autorisés à utiliser.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
la source
Dans VS2013 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
la source
VS 2015 change cela. Il a ajouté un dossier .vs à mon projet Web et l'applicationhost.config s'y trouvait. J'ai apporté les modifications suggérées (authentification de fenêtre = true, anon = false) et il a commencé à fournir un nom d'utilisateur au lieu d'un blanc.
la source
Ouvrez le fichier applicationHost.config situé dans le dossier C: \ Users [ID utilisateur] \ Documents \ IISExpress \ config. Dans ce fichier, changez le overrideModeDefault de anonymousAthentication et windowsAuthentication en "Allow"
Changez ensuite lockItem sur "false" pour AnonymousAuthenticationModule et WindowsAuthenticationModule
Ces modifications permettront aux paramètres de configuration Web existants de remplacer ce qui se trouve dans le fichier applicationHost pour IIS Express.
la source
Vous pouvez également modifier les propriétés du projet pour votre projet Web, choisir "Web" dans les onglets de gauche, puis changer le menu déroulant Serveurs en "IIS local". Créez un nouveau répertoire virtuel et utilisez le gestionnaire IIS pour configurer votre site / pool d'applications comme vous le souhaitez.
Je préfère cette méthode, car vous auriez généralement un v-directory (ou site) IIS local à tester localement. Vous n'affecterez pas non plus les autres sites de cette façon.
la source
Il semble que la bonne réponse soit fournie par user3149240 ci-dessus. Cependant, comme l'a souligné Neil Watson, le fichier applicationhost.config est en jeu ici.
Les modifications peuvent en fait être apportées dans le volet Propriétés VS ou dans le fichier, bien qu'à un endroit différent. Au bas du fichier applicationhost.config se trouve un ensemble d'éléments d'emplacement. Chaque application pour IIS Express semble en avoir un. La modification des paramètres dans l'interface utilisateur met à jour cette section du fichier. Ainsi, vous pouvez modifier les paramètres via l'interface utilisateur ou modifier ce fichier.
Voici un exemple avec l'authentification anonyme désactivée et l'authentification Windows activée:
Ceci est équivalent dans VS UI à:
la source
F4 ne m'amène pas toujours à ce panel. D'ailleurs, on dit souvent qu'une image vaut mille mots.
la source