250 votes

IIS Express Authentification Windows

J'essaie d'utiliser IIS Express avec VS2010 pour héberger une application Silverlight. J'ai modifié mon fichier applicationhost.config pour permettre la modification des paramètres de configuration appropriés. J'ai les éléments suivants dans mon web.config :

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

Je ne suis pas authentifié et mon appel de service de domaine renvoie un enregistrement nul comme utilisateur. J'ai réussi à faire fonctionner ce système après avoir installé VS2010 SP1 BETA, mais j'essaie de le faire fonctionner uniquement avec IIS Express.

Comment activer l'authentification Windows pour qu'elle fonctionne avec IIS Express. Y a-t-il un paramètre de configuration qui m'échappe ?

408voto

roryWoods Points 2630

Visual Studio 2010 SP1 et 2012 ont ajouté la prise en charge d'IIS Express, éliminant ainsi la nécessité de modifier les crochets d'angle.

  1. Si vous ne l'avez pas encore fait, cliquez avec le bouton droit de la souris sur un projet à saveur web et sélectionnez "Use IIS Express...".
  2. Une fois terminé, sélectionnez le projet web et appuyez sur F4 pour mettre en évidence le panneau des propriétés.
  3. Définissez la propriété "Authentification Windows" sur Activé, et la propriété "Authentification anonyme" sur Désactivé.

enter image description here

Je pense que cette solution est supérieure aux options du vikomall.

  • L'option 1 est un changement global pour tous les sites IIS Express.
  • L'option n°2 laisse des traces de développement dans le web.config.
    • En outre, il entraînera probablement une erreur lors du déploiement vers IIS 7.5, à moins que vous ne suiviez la procédure de "déverrouillage" dans le fichier applicationHost.config de votre serveur IIS.

La solution basée sur l'interface utilisateur ci-dessus utilise des éléments de localisation spécifiques au site dans le fichier applicationHost.config d'IIS Express, sans toucher à l'application.

Plus d'informations ici : http://msdn.microsoft.com/en-us/magazine/hh288080.aspx

5 votes

Pour souligner ce que j'ai manqué - le menu contextuel des propriétés et Alt-Enter ne supplantent pas complètement les détails du volet des propriétés qui vous permettent de modifier si l'authentification Windows est activée ou non. Utilisez F4 ou cliquez sur le panneau des propriétés pour voir les propriétés.

0 votes

J'ai lutté avec cette tâche pendant plusieurs jours avant de recommencer avec cet article : msdn.microsoft.com/fr/us/library/gg703322%28VS.98%29.aspx En gros, ne tenez pas compte de tout ce qui se trouve dans le message original, recommencez avec un applicationhost.config "vierge" et activez les paramètres comme indiqué dans cette réponse. J'ai enfin obtenu l'authentification Windows ! Merci !

0 votes

Il finit par changer le paramètre IISExpressWindowsAuthentication de 'enabled' à 'disabled' dans le .csproj. <IISExpressWindowsAuthentication>disabled</IISExpressWindowsAuthentication>.

278voto

vikomall Points 9130

option 1 :

modifier \My Documents\IISExpress\config\applicationhost.config et activer windowsAuthentication, c'est-à-dire

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

option 2 :

Déverrouiller les fenêtresSection Authentification dans la section \My Documents \IISExpress\config\applicationhost.config comme suit

<add name="WindowsAuthenticationModule" lockItem="false" />

Modifiez les paramètres d'annulation des types d'authentification requis pour qu'ils soient "autorisés".

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

Ajoutez ce qui suit dans le web.config de l'application

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

Le lien ci-dessous peut vous aider : http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

Après l'installation de VS 2010 SP1, l'application des options 1 + 2 peut être nécessaire pour que l'authentification Windows fonctionne. En outre, vous devrez peut-être définir l'authentification anonyme sur false dans le fichier applicationhost.config d'IIS Express :

<authentication>

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

pour VS2015, le fichier de configuration de l'applicationhost de IIS Express peut être situé ici :

$(solutionDir)\.vs\config\applicationhost.config

et le <UseGlobalApplicationHostFile> dans le fichier du projet permet de sélectionner le fichier de configuration par défaut ou spécifique à la solution.

0 votes

Merci. Mais j'ai essayé les options ci-dessus. Mais je ne suis toujours pas en mesure d'utiliser l'authentification Windows. Je suppose que je vais devoir attendre VS2010 / SP1 pour obtenir cette fonctionnalité.

3 votes

L'option 2 a fonctionné pour moi. il m'a fallu un certain temps pour trouver ce post !

0 votes

Cette question ne s'applique plus vraiment depuis la sortie de VS2010 sp1. J'essayais de le faire fonctionner sans installer le sp1. Je pense que le sp1 fait quelque chose pour le configurer la première fois que je n'ai pas réussi à comprendre. Je peux aller de l'avant et marquer cette réponse correcte, bien qu'elle ne le soit pas vraiment puisque la non-installation de sp1 était la condition préalable.

9voto

bees73 Points 53

En vous basant sur la réponse de booij boy, vérifiez si vous avez coché la fonction "Authentification Windows" dans Panneau de configuration -> Programmes -> Activer ou désactiver des fonctions Windows -> Services d'information Internet -> Services World Wide Web -> Sécurité

De plus, il semble y avoir une grande différence lorsqu'on utilise firefox ou internet explorer. Après avoir activé l'"authentification Windows", cela fonctionne pour moi, mais seulement dans IE.

2 votes

Et le faire fonctionner dans Firefox : markmonica.com/2007/11/20/…

0 votes

5voto

Chiramisu Points 1177

En plus de ces excellentes réponses, dans le contexte d'un environnement de développement IISExpress, et afin de déjouer la fameuse erreur "system.web/identity@impersonate", vous pouvez simplement vous assurer que le paramètre suivant est en place dans votre fichier applicationhost.config.

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

Cela vous donnera plus de flexibilité pendant le développement et les tests, mais assurez-vous de comprendre les implications de l'utilisation de ce paramètre dans un environnement de production avant de le faire.

Postes utiles :

0 votes

J'ai atterri sur ce site complètement par hasard, mais ça a marché :-)

2voto

schwartzberg Points 9

Dans IIS Manager, cliquez sur votre site. Vous devez être "en vue des fonctionnalités" (plutôt qu'en "vue du contenu").

Dans la section IIS de "feature view", choisissez la fonction "authentification". et cliquez dessus. Ici, vous pouvez activer l'authentification Windows. Ceci est également possible (je pense que c'est une des suggestions du fil de discussion) par un paramètre dans le web.config ( ...)

Mais peut-être avez-vous un web.config avec lequel vous ne voulez pas trop vous frotter. Dans ce cas, ce fil de discussion ne sera pas d'une grande aide, c'est pourquoi j'ai ajouté cette réponse.

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