web-dev-qa-db-fra.com

comment exécuter le pool d'applications iisexpress sous une identité différente

existe-t-il un moyen d'exécuter le pool d'applications iisexpress sous une identité différente de celle de l'utilisateur actuellement connecté?

Je contourne ce problème en utilisant la commande "runas" actuellement mais je voudrais savoir s'il y a quelque chose de intégré à iisexpress que je peux utiliser.

32
theKing

Il semble que cela devrait être possible. Dans votre fichier IIS Expresshost.config du site Express, un élément <processModel/> Est défini dans <applicationPoolDefaults> Sous <applicationPools>

L'élément <processModel> Possède des attributs pour userName et password.

De MSDN :

Spécifie qu'ASP.NET exécutera le processus de travail avec une identité Windows différente de l'identité Windows pour l'identité de processus par défaut. Par défaut, cet attribut est défini sur la machine et le processus s'exécute sous un compte d'utilisateur nommé ASPNET qui est créé automatiquement lorsque ASP.NET est installé. Le mot de passe du compte ASPNET est généré de manière cryptographique au moment de l'installation. Si des informations d'identification valides sont présentées dans cet attribut et l'attribut de mot de passe, le processus est exécuté avec le compte donné.

Cela devrait vous permettre d'exécuter le site sous différentes informations d'identification de l'utilisateur connecté.

29
Adam Price

Je n'ai pas pu faire fonctionner la solution ci-dessus et je voulais pouvoir déboguer via Visual Studio lors de l'exécution de IIS Express sous différentes informations d'identification.

  1. Ouvrez l'invite de commande en utilisant "Exécuter en tant qu'administrateur" (vous avez besoin de privilèges élevés)
  2. Accédez au répertoire de Visual Studio dans l'invite de commande (dans mon cas: "cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE" pour VS2010).
  3. runas/netonly/user: [domaine]\[id_utilisateur] devenv.exe
  4. Ouvrez votre solution à partir de VS et complétez vos informations d'identification TFS (le cas échéant).

Vous pouvez maintenant déboguer comme d'habitude sous IISExpress (en supposant que c'est ainsi que vous avez configuré votre projet) sous l'exécution en tant qu'identifiants. C'est très bien si vous devez utiliser la sécurité intégrée pour les connexions à la base de données ou quelque chose de similaire, mais devez utiliser des informations d'identification différentes.

7
Glade Mellor

"runas" n'est que la solution. IIS Express peut ne pas respecter les paramètres processModel définis dans le fichier applicationhost.config.

5
vikomall

Runas/netonly IISExpress.exe de la ligne de commande fonctionne et est très viable si vous cherchez une réponse aussi désespérée que nous. Article connexe

1
Beej

Je me demande si cela fonctionne vraiment - IIS Express semble exécuter tous les pools d'applications dans le même processus - et ce processus est exécuté dans le contexte de l'utilisateur actuel ...?

Il semble que l'option "Exécuter en tant que" puisse fonctionner, mais cela nous obligerait à lancer IIS Express à partir de la ligne de commande (ou événement de génération) au lieu de compter sur Visual Studio pour le démarrer. :(

0
Ted Nyberg