Question

Je suis en train de développer WinForm, sous XP et VS 2005 (ancien, je sais). Je voudrais m'assurer que mon application peut fonctionner sans droits d'administrateur, mais je suis trop paresseux pour essayer de faire fonctionner VS en tant que non-administrateur et je ne veux pas me connecter ni me déconnecter pour tester mon application.

Existe-t-il un moyen de déboguer en tant que non-administrateur?

Puis-je ajouter à mon code un ensemble d'attributs de sécurité d'accès au code qui me forceront à exécuter le même ensemble d'autorisations qu'un non administrateur?

Était-ce utile?

La solution

Exécuter VS en tant qu’autre utilisateur à partir de votre session de bureau actuellement connectée. Voir Comment activer et utiliser le " Run As " commande lors de l'exécution de programmes sous Windows . Cela signifie que vous n'aurez pas à vous connecter et à vous déconnecter.

Je vous suggère d'exécuter votre application cible en tant qu'autre utilisateur, via RunAs, puis attachez le débogueur VS au processus (si nécessaire), via le programme Debug > Attacher au traitement ... élément de menu dans Visual Studio.

Autres conseils

En vous appuyant sur la réponse de Phil, vous pouvez automatiser le processus en définissant le projet de démarrage sur:

Démarrez le programme externe: c: \ windows \ system32 \ runas.exe

avec les arguments de la ligne de commande: / noprofile / user: {Nom_ordinateur} \ {Nom_utilisateur} {Nom_application} .exe

Malheureusement, je ne pense pas qu'il existe un moyen automatique de lier le processus au débogueur du VS (à cause de l'avertissement de sécurité), mais en appelant de manière conditionnelle

#if (DEBUG) 
    System.Diagnostics.Debugger.Launch();
#endif

vous serez invité à vous connecter à un débogueur en deux clics.

Abordons cela avec un changement plus fondamental:

Si vous autorisez votre ordinateur à autoriser les sessions Bureau à distance simultanées ( Vista , XP , utilisez Google pour les autres), puis lancez une session Remote Desktop sur 127.0.0.2, vous pouvez l'exécuter en tant qu'utilisateur complètement différent sur votre système local, ce qui vous permet de voudrait sans avoir à basculer entre les utilisateurs.

Pour moi, je suis normalement un utilisateur non administrateur, mais je lance une session de bureau à distance en tant qu'administrateur chaque fois que je dois exécuter une tâche administrative. Mais vous pouvez faire le contraire tout aussi facilement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top