Problème d'authentification lors du débogage dans VS2013-iis express

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 Dev, cela fonctionne très bien, si je l'exécute en mode debug sur N'importe quelle version précédente de Visual Studio, cela fonctionne aussi très bien.

mon problème est que 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>
101
demandé sur KyleMit 2013-10-22 14:54:46

8 réponses

je venais de mettre à jour à VS 2013 de VS 2012 et l'identité actuelle de l'utilisateur (HttpContext.Utilisateur.Identité) est passé sous le nom d'anonymous.

j'ai essayé de changer le IIS express applicationhost.config, aucune différence.

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

Modifier l'Authentification Anonyme à être Désactivé et l'Authentification Windows pour être Activé.

Fonctionne comme la sauce :)

209
répondu Toby Simmerling 2013-12-31 11:58:27

en faisant des recherches sur ce sujet, j'ai trouvé ma réponse, mais je ne peux pas trouver la réponse sur internet, donc j'ai pensé que je partagerais ceci:

j'ai corrigé mon problème en modifiant mon postedemande.fichier de configuration. Mon fichier a été sauvegardé dans le dossier "\Mes Documents\IISExpress\config".

il semble que VS2013 ignorait mon web.fichier de configuration et application de différentes méthodes d'authentification.

j'ai dû modifier cette partie du fichier à ressembler à l' dessous. En vérité, j'ai seulement modifié l'anonymousAuthentication pour qu'elle soit fausse et le mode windowsAuthentication pour qu'il soit vrai.

<authentication>

  <anonymousAuthentication enabled="false" userName="" />

  <basicAuthentication enabled="false" />

  <clientCertificateMappingAuthentication enabled="false" />

  <digestAuthentication enabled="false" />

  <iisClientCertificateMappingAuthentication enabled="false">
  </iisClientCertificateMappingAuthentication>

  <windowsAuthentication enabled="true">
    <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>

</authentication>
128
répondu Neil Watson 2017-12-26 18:44:17

dans Visual Studio 2013 et VS15 (mais je suppose que la même chose pour toutes les autres versions) appuyez simplement sur F4 et changez ces deux propriétés: - Authentification Anonyme: Désactiver - Authentification Windows: Activer

41
répondu ThaNet 2017-06-08 18:34:42

dans VS2013 F4 sur votre projet pour voir la fenêtre de propriétés et désactiver L'accès anonyme et activer "l'authentification Windows"

alors ça marchera. Pas besoin de changer quoi que ce soit d'autre

39
répondu James Pressley 2013-12-11 13:28:56

VS 2015 change cela. Il a ajouté un .le dossier vs vers mon projet web et le serveur d'applicationhost.config était là. J'ai fait les modifications proposées (fenêtre d'authentification = true, anon=false) et il a commencé à fournir un nom d'utilisateur au lieu d'un blanc.

9
répondu Tom McDonald 2015-09-02 19:43:50

ouvrez la porte d'application.fichier de configuration situé dans le C:\Users[nom d'utilisateur]\Documents\IISExpress\config. À l'intérieur de ce fichier, modifiez le message d'annulation anonyme et windowsAuthentication pour "autoriser "

 <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Allow" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Allow" />
                </sectionGroup>

Prochain changement lockItem être "faux" pour AnonymousAuthenticationModule et WindowsAuthenticationModule

  <system.webServer>
            <modules>
                <!--
                <add name="HttpCacheModule" lockItem="true" />
-->
                <add name="DynamicCompressionModule" lockItem="true" />
                <add name="StaticCompressionModule" lockItem="true" />
                <add name="DefaultDocumentModule" lockItem="true" />
                <add name="DirectoryListingModule" lockItem="true" />
                <add name="IsapiFilterModule" lockItem="true" />
                <add name="ProtocolSupportModule" lockItem="true" />
                <add name="HttpRedirectionModule" lockItem="true" />
                <add name="ServerSideIncludeModule" lockItem="true" />
                <add name="StaticFileModule" lockItem="true" />
                <add name="AnonymousAuthenticationModule" lockItem="false" />
                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
                <add name="UrlAuthorizationModule" lockItem="true" />
                <add name="BasicAuthenticationModule" lockItem="true" />
                <add name="WindowsAuthenticationModule" lockItem="false" />

effectuer ces modifications permettra aux paramètres de configuration web existants de passer outre ce qui est dans le fichier applicationHost pour IIS Express.

8
répondu ngiunta 2013-10-22 13:43:22

vous pouvez également modifier les propriétés du projet pour votre projet web, choisir" Web "à partir des onglets de gauche, puis modifier la liste déroulante des serveurs en"IIS Local". Créez un nouveau répertoire virtuel et utilisez IIS manager pour configurer votre pool de sites/applications comme vous le souhaitez.

je préfère cette méthode, car vous auriez généralement un répertoire v-IIS local (ou site) à tester localement. Vous n'affecterez aucun autre site de cette façon non plus.

Web Project Properties

5
répondu ScottLenart 2014-03-31 23:34:45

il semble que la bonne réponse soit fournie par l'utilisateur3149240 ci-dessus. Toutefois, comme L'a souligné Neil Watson, la demande est en retard.fichier de configuration est en jeu ici.

les modifications peuvent en fait être effectuées dans le volet de propriété VS ou dans le fichier, mais à un endroit différent. Près du fond de la colonne d'application.fichier de configuration est un ensemble d'éléments location. Chaque application pour IIS Express semble en avoir une. Modifier les paramètres de L'UI met à jour cette section du fichier. Vous pouvez donc soit modifier les paramètres par L'interface utilisateur, soit modifier ce fichier.

voici un exemple avec Anonymous auth off et Windows Authon:

<location path="MyApp">
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

c'est équivalent dans le VS UI à:

Anonymous Authentication: Disabled
Windows Authentication: Enabled
1
répondu EricksonG 2015-04-01 18:16:25