2010-10-31 4 views
2

J'ai besoin de faire apparaître le formulaire "Exécuter en tant que" lorsque l'utilisateur essaie d'exécuter mon application (C# .NET 4, sous Win XP), qu'il pourrait facilement se connecter en tant que l'autre utilisateur. Il peut être dans l'application elle-même (dans le code C#) ou dans un autre fichier batch/exe précédent ("lanceur") ou autre. Je n'ai trouvé aucun moyen de faire apparaître ce formulaire. Comment pourrait-on le faire?Comment puis-je forcer l'affichage du formulaire "Exécuter en tant que" lorsque quelqu'un essaie d'exécuter mon application de bureau .net?

merci.

Répondre

1

Avec <requestedExecutionLevel level="requireAdministrator"/> dans votre manifeste, vous pouvez forcer l'exécution de votre application en tant qu'administrateur. Cependant, cela n'inclut pas la boîte de dialogue RunAs. Si vous regardez les paramètres du raccourci, vous voyez qu'il n'y a pas d'option pour gérer cela. Lorsque l'utilisateur actuel dispose de privilèges administratifs, le paramètre décrit demandera simplement à l'utilisateur de l'exécuter en tant qu'administrateur.

Cependant, lorsque l'utilisateur actuel n'a pas ce privilège, il demandera à l'utilisateur d'entrer les détails d'un compte administratif, ce qui, je pense, se rapproche de ce que vous cherchez.

1

Votre meilleure chance si vous voulez faire est de créer un processus d'amorçage qui appelle CredUIPromptForWindowsCredentials. Cela créera une boîte de dialogue qui invitera l'utilisateur à fournir ses informations d'identification. Une fois que vous avez leurs informations d'identification, utilisez la surcharge Process.Start qui prend en compte un nom d'utilisateur et un mot de passe que le CredUIPromptForWindowsCredentials a renvoyé. Nécessite un peu d'Interop.

Questions connexes