2009-02-27 7 views
0

J'ai besoin que mon programme winform s'exécute en tant qu'un autre utilisateur (il fonctionnera sous le planificateur de tâches) et non en tant qu'utilisateur connecté. Je pense que le problème est que mon application est basée sur le gui et non sur la ligne de commande (cela fait-il une différence), donc le gui doit charger son truc et ensuite le fermer. Est-ce possible sous XP ou Vista?C# Exécution d'un programme winform en tant que personne autre que l'utilisateur connecté

Merci

Répondre

5

Les tâches planifiées peuvent être rodés comme «un utilisateur spécifié, qui peut être différent de l'utilisateur connecté.

Vous pouvez spécifier cet utilisateur lors de la création de la tâche ou en modifiant les propriétés d'une tâche existante.

1

Si votre application doit être exécutée en tant que tâche généralisée, elle ne peut pas vraiment avoir d'interface utilisateur. Au strict minimum, il devrait vraiment pouvoir être exécuté via la ligne de commande. La meilleure approche serait de séparer l'interface utilisateur du traitement réel afin que vous puissiez toujours l'exécuter de manière interactive si nécessaire. Cela rendrait également le test de votre application beaucoup plus facile.

EDIT: Edité pour le typage et le sens

0

Je voterais pour la première option, ou de fournir une possibilité supplémentaire: Utiliser Impersonation dans votre code. Bien que cela puisse être excessif/ne correspond pas à vos besoins ici.

0

Une autre façon d'exécuter le programme consiste à modifier l'utilisateur par programme en fonction d'un fichier de configuration ou même d'une connexion DB. Un exemple de projet est le Code du projet:

http://www.codeproject.com/KB/cs/runas.aspx

Hope this helps.

0

Vous recherchez la méthode Process.Start. Une des surcharges accepte une paire nom d'utilisateur/mot de passe. Le processus sera créé en utilisant ces informations d'identification utilisateur.

var app = Process.Start(@"c:\path\to\some\app.exe", userName, password, domainOrEmptyString); 
Questions connexes