Applet, Process et WMI

Signaler
Messages postés
2
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
24 mai 2005
-
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
-
Bonjour,


J'ai créé une applet en .Net C# tel qu'il l'est expliqué sur ce site : http://fr.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx
Ainsi j'obtiens bien une applet dans Internet Explorer.


Mon but étant d'ouvrir une application et de lister les processus que celle ci pourrait lancer, je m'attelle donc à la gestion de thread et de process.


Donc en mettant un strong name à ma dll (applet) créée et en l'enregistrant dans la stratégie de sécurité de l'ordinateur du runtime, je permets un control total (FullTrust) de l'applet.


Je me suis servi des différentes permissions afin d'autoriser des parties de mon code à accéder à certaines actions comme le
System.Security.Permissions.UIPermission(System.Security.Permissions.PermissionState.Unrestricted).Assert()
pour ouvrir un MessageBox.


Tout ceci pour en arriver à mon problème et à ma gestion d'ouverture de processus.


Grâce à WMI je devrais capter la création de processus et ainsi me permettre de connaître les processus lancés par mon application



ConnectionOptions co = new ConnectionOptions();


co.Impersonation = ImpersonationLevel.Impersonate;


ManagementScope scope = new ManagementScope("\\\\.\\root\\cimv2",co);


WqlEventQuery wql = new WqlEventQuery("__instancecreationevent",new TimeSpan(0,0,1),"TargetInstance ISA 'Win32_Process'");


ManagementEventWatcher meWatcher = new ManagementEventWatcher(scope,wql);


meWatcher.EventArrived += new EventArrivedEventHandler(meWatcher_EventArrived);


meWatcher.Start();


J’ai testé ce code en mode console, je lance une invite de commande (cmd.exe) et via l'invite je lance notepad, il me détecte sans probleme le notepad


Par contre des que j'insère le code dans une applet et que je lance les mêmes processus, il ne détecte pas le lancement de notepad.


L'event n'est pas lancé et je ne vois pas pourquoi... peut être des problèmes de droits


Pour info, lorsque j'accroche un eventhandler sur l'événement Exited de mon process



ps.EnableRaisingEvents = true;


ps.Exited +=new EventHandler(childProcess_Exited);


Il détecte bien la fermeture du process en entrant dans la méthode childProcess_Exited donc ça n'a pas l'air d'être la gestion d'évènement qui ne marche pas.


J'espère avoir été assez clair et surtout avoir donné assez de détail pour la compréhension de mon problème


Si quelqu'un peut m'aider ou du moins m'orienter sur WMI ou les applets en dotnet


d'avance merci

5 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
L'user est toujours ASPNET donc c'est normal, il doit te jeter un Access denied normalement.

Il faut au mieux virer les connexion anonymes , faire de l'impersonate et autoriser les droits d'accès sur WMI par l'utilisateur du web.

::|The S@ib|::
MVP C#.NET
C'est ce que je pensais mais en essayant de mettre des droits particuliers pour différents utilisateurs (ASP.NET, IUSR, Utilisateurs authentifiés) afin d'être certain que je n'en loupe aucun
j'ai toujours le même comportement.
Malheureusement les logs ne m'indiquent pas l'erreur et l'objet ne déclenche aucune exception non plus.
Connaitrais-tu un moyen de savoir comment est authentifié l'Applet ?
J'ai l'impression qu'elle n'utilise pas l'authentification de la page.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
Les droits pour WMI sont par là :

Demarrer => Executer => wmimgmt.msc
click droit sur WMI CONTROL => propriétés => choisi le namespace que tu attaques et click sur le bouton sécurité
ajoute ton utilisateur

Les droits sont là :

Execute Methods: Permits methods that are exported from the WMI classes or instances to be run.
Full Write: Permits full read, write, and delete access to all WMI objects, classes, and instances.
Partial Write: Permits write access to static WMI objects.
Provider Write: Permits write access to objects that are provided by the provider.
Enable Account: Permits read access to WMI objects.
Remote Enable: Permits remote access to the namespace.
Read Security: Permits read-only access to WMI security information.
Edit Security: Permits read and write access to WMI security information

::|The S@ib|::
MVP C#.NET
Messages postés
2
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
24 mai 2005

Pas de problème pour administrer les droits WMI
le soucis est avant tout de savoir comment est authentifiée l'applet elle-même.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
A priori ASPNET

::|The S@ib|::
MVP C#.NET