J'ai créé une application WPF qui lit/écrit la mémoire des autres processus, utilise beaucoup les clés de registre, lit/écrit les fichiers sur le disque et télécharge/déploie les fichiers d'un site Web. LOL non, ce n'est pas un cheval de Troie, ne vous inquiétez pas: DDoutes sur les privilèges d'administrateur
Il a été compilé sous Framework 4.5 donc il sera normalement compatible uniquement avec Windows Vista ou versions ultérieures, et, pour fonctionner correctement, il aura besoin de droits d'administrateur . Maintenant ... afin de lui accorder toutes les permissions dont il a besoin d'une manière transparente, j'ai trouvé un large éventail de possibilités. Ceux que je trouve plus simple sont:
1) Insérer le code suivant dans le manifeste:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
2) Vérifier si l'UAC est activé et si l'on utilise n'a pas de droits d'administrateur, si elle est comme si , demandant à l'utilisateur s'il veut accorder des droits d'administrateur à l'application. Ensuite, si la réponse est « oui », l'exécution d'un processus de demande élevée en utilisant:
ProcessStartInfo.Verb = "runas";
Alors ... quelle est la meilleure façon de gérer ce problème?
J'ai aussi une autre question. Mon application va charger une assemblée à partir d'un tableau d'octets après le démarrage en utilisant:
Byte[] assemblyData;
using (BinaryReader reader = new BinaryReader(new FileStream(filePath, FileMode.Open)))
assemblyData = reader.ReadBytes(Convert.ToInt32(fs.Length));
Assembly assembly = Assembly.Load(assemblyData);
MethodInfo method = assembly.EntryPoint;
if (method != null)
{
Object instance = assembly.CreateInstance(method.Name);
method.Invoke(o, null);
}
Ma question est ... sera l'Assemblée étant chargée de la mémoire dans l'extrait de code ci-dessus (une autre application WPF) ont les mêmes privilèges de la application qui l'a chargé? Si maintenant, comment devrais-je traiter à nouveau des droits d'administration?