Я пишу Расширение IE (BHO) в C#. Когда выполнено в защищенном режиме (новый совместимый контролем учётных записей режим IE, который вынуждает все расширения работать в низкой целостности), она перестала работать, потому что она не может получить доступ к user.config в appdata папке.
Там некоторый путь состоит в том, чтобы отметить файлы, читаемы процессами более низкой целостности?
Сбой этого, там некоторый способ вынудить BHO работать в целостности среднего уровня?
Сбой этого, там некоторый способ создать символьную ссылку низкой целостности в папках низкой целостности, которая указывает на файл средней целостности в AppData?
Сбой этого, там некоторый способ вынудить приложение использовать user.config файл в папке LocalLow? Как я получаю путь для этой папки в .NET (это не перечислено под Средой. SpecialFolder)? Я буду в состоянии отступить с пользователями рабочий XP или кто выключает защищенный режим, не теряя все их user.config данные?
Предлагаю вам написать свой SettingsProvider, который сохраняет файлы в System.IO.IsolatedStorage.
Существует один подход, который не является особенно элегантным, но вы можете начать другой (брокерский) процесс со целостностью средней уровня, которая может сделать «грязную работу» и использовать IPC для связи с этим. Чтобы облегчить свою жизнь, я бы предложил вам использовать розетки для связи, потому что они не требуют проверки безопасности, которые могут быть сложными, когда у вас есть связь между процессами с различными уровнями целостности.
Для того, чтобы пропустить предупреждение UAC, когда вы порождаете новый процесс, вы можете изменить сценарий регистрации BHO и добавить несколько значений реестра, которые будут информировать, т.е. молча повысить новый процесс на средний уровень.
Вы можете найти подробную информацию здесь: http://msdn.microsoft.com/en-us/library/bb250462 (vs.85) .aspx # wpm_elebp
Я бы начал с Справочника по Internet Explorer в защищенном режиме .