Я сделал приложение WPF, которое считывает/записывает память других процессов, широко использует ключи реестра, читает/записывает файлы на диск и загружает/разворачивает файлы с веб-сайта. LOL no, это не троян, не волнуйтесь: DСомнения в отношении привилегий администратора
Он был скомпилирован под Framework 4.5, поэтому он обычно совместим только с версиями Windows Vista или более поздней версии, и для правильной работы ему понадобятся права администратора , Теперь ... чтобы предоставить все необходимые ему разрешения прозрачным способом, я нашел множество возможностей для поиска по всему миру. Те, которые я нахожу проще являются:
1) Вставка следующего кода в манифесте:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
2) Проверяется UAC включен, и если используются имеют не права администратора, если это так так , спрашивая пользователя, хочет ли он предоставить права администратора для приложения. Тогда, если ответ «Да», работает процесс с повышенными правами приложений с помощью:
ProcessStartInfo.Verb = "runas";
... Так, что это лучший способ справиться с этой проблемой?
У меня также есть другой вопрос. Мое приложение будет загрузить сборку из массива байтов после запуска с помощью:
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);
}
Мой вопрос ... будет Ассамблея загружается из памяти в приведенном выше фрагменте кода (другое приложение WPF) имеют те же привилегии приложение, которое загрузило его? Если теперь, как я должен снова иметь дело с правами администратора?