web-dev-qa-db-fra.com

IIS Authentification Windows express

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 le suivant 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 en tant qu'utilisateur. Je pouvais le faire fonctionner après l’installation de la version bêta de VS2010 SP1, mais j’essaie de le faire fonctionner avec uniquement IIS Express.

Comment activer l'authentification Windows pour fonctionner avec IIS Express. Existe-t-il un paramètre de configuration qui me manque?

242
Mark

option-1 :

éditez le fichier \My Documents\IISExpress\config\applicationhost.config et activez windowsAuthentication, c.-à-d.:

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

option-2 :

Déverrouillez la section windowsAuthentication dans\Mes documents\IISExpress\config\applicationhost.config comme suit

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

Modifier les paramètres de remplacement pour les types d'authentification requis sur "Autoriser"

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

Ajouter ce qui suit dans le fichier 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 aider: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

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

<authentication>

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

pour VS2015, le fichier de configuration IIS Express application peut être localisé ici:

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

et l'option <UseGlobalApplicationHostFile> dans le fichier de projet sélectionne le fichier de configuration par défaut ou spécifique à la solution.

272
vikomall

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

  1. Si ce n'est déjà fait, cliquez avec le bouton droit de la souris sur un projet Web et sélectionnez "Utiliser IIS Express ...".
  2. Une fois terminé, sélectionnez le projet Web et appuyez sur F4 mettre en évidence le panneau 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 crois que cette solution est supérieure aux options du vikomall.

  • L'option n ° 1 constitue un changement global pour tous les IIS sites Express.
  • L'option n ° 2 laisse le développement cruellement dans le fichier Web.config.
    • De plus, cela entraînera probablement une erreur lors du déploiement sur IIS 7.5 à moins que vous ne suiviez la procédure de "déverrouillage" sur le fichier applicationHost.config de votre serveur IIS.

La solution basée sur l'interface utilisateur ci-dessus utilise des éléments d'emplacement spécifiques au site dans IIS applicationHost.config de Express, laissant ainsi l'application intacte.

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

398
roryWoods

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

En outre, il semble y avoir une grande différence lorsque vous utilisez Firefox ou Internet Explorer. Après avoir étiqueté "l'authentification Windows", cela fonctionne pour moi, mais uniquement dans IE.

9
bees73

En plus de ces bonnes réponses, dans le contexte d'un environnement de développement IISExpress et afin de contrecarrer l'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 permettra plus de flexibilité lors du développement et des tests, mais assurez-vous de bien comprendre les implications de l'utilisation de ce paramètre dans un environnement de production avant de le faire.

Messages utiles:

5
Chiramisu

Dans IIS Manager, cliquez sur votre site. Vous devez être "en mode fonctionnalité" (plutôt que "contenu")

Dans la section IIS de la "vue des fonctionnalités", choisissez la "fonctionnalité" dite "authentification" et cliquez dessus. Ici, vous pouvez activer l'authentification Windows. Cela est également possible (par je pense dans l'une des suggestions dans le fil) par un paramètre dans le web.config (...)

Mais peut-être avez-vous un web.config avec lequel vous ne voulez pas trop scruter. Ensuite, ce fil ne serait pas trop d'aide, c'est pourquoi j'ai ajouté cette réponse.

2
user1436076

Si aucune des réponses ne vous aide, vous devrez peut-être ajuster les propriétés du projet. Vérifiez cette autre réponse de StackOverflow pour savoir comment faire cela:

https://stackoverflow.com/a/20857049/56621

0
Alex

Cette réponse peut aider si: 1) votre site fonctionnait avec l'authentification Windows avant la mise à niveau vers Visual Studio 2015 et 2) et que votre site tente de charger /login.aspx (même s'il n'existe aucun fichier de ce type sur votre site).

Ajoutez les deux lignes suivantes à la section appSettings du Web.config de votre site.

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
0
Theophilus

Après avoir tout fait dans les réponses ci-dessus, j'ai compris que je n'utilisais pas Visual Studio en tant qu'administrateur. Après avoir exécuté en tant qu'administrateur, le problème est résolu.

0
Alisson

Sur la même note - VS 2015, .vs\config\applicationhost.config non visible ou non disponible.

Par défaut, le dossier .vs est masqué (du moins dans mon cas).

Si vous ne parvenez pas à trouver le dossier .vs, suivez les étapes ci-dessous.

  1. Faites un clic droit sur le dossier Solution
  2. sélectionnez 'Propriétés'
  3. Dans la section Attributes, cochez la case Hidden (non cochée par défaut),
  4. puis cliquez sur le bouton "Appliquer"
  5. La fenêtre de confirmation 'Appliquer les modifications à ce dossier, sous-dossier et fichiers' sera affichée, cliquez sur 'OK'.

    Répétez les étapes 1 à 5, à l'exception de step 3, vous devez cette fois uncheck l'option 'Masqué' que vous avez précédemment cochée.

Maintenant, devrait être en mesure de voir le dossier .vs.

0
SatheeshN