Мы можем заставить подсказку контроля учётных записей показывать только однажды?

Есть ли путь к приложению для подаренного пользователю подсказку контроля учётных записей только однажды после первого выполнения. После этого, никакой дальнейший запрос.

Другими словами, я понимаю, что для нашего приложения нужно разрешение контроля учётных записей пользователя сделать определенные вещи. И это прекрасно. Но мы не хотим, чтобы это должно было продолжать спрашивать относительно каждого случая, который это выполняет. Пользователь может дать разрешение нашему приложению навсегда? Или что я прошу нарушать основные принципы контроля учётных записей?

Мы работаем с.NET и Windows 7

5
задан Tim S. Van Haren 7 January 2010 в 17:24
поделиться

7 ответов

Единственный способ это установить себя в качестве сервиса или драйвера устройства.

.
3
ответ дан 18 December 2019 в 09:07
поделиться

Если это возможно (я не думаю, что стоит говорить Как настроить Visual Studio так, чтобы не выдавать UAC подсказки при каждом запуске?), я уверен, что это должно быть сделано на пользовательской стороне (например, отключение подсказки в первую очередь), а не на стороне приложения.

.
0
ответ дан 18 December 2019 в 09:07
поделиться

Пользователь должен иметь возможность щелкнуть правой кнопкой мыши на исполняемом файле и перейти к свойствам -> совместимость -> "запустить эту программу от имени администратора"

.
-2
ответ дан 18 December 2019 в 09:07
поделиться

Обновление: Ой, я изначально неправильно прочитал вопрос и интерпретировал его как "подсказку только один раз, на самом первом запуске" вместо "только один раз, каждый раз, когда он запускается" (отредактировано соответственно ниже).

Вы не можете предоставить права администратора заявки на все время, что действительно противоречит дизайну UAC.

Однако, одним из способов обойти это является создание службы, с которой взаимодействует ваше приложение, способной запускаться в фоновом режиме и выполнять задачи с повышенными правами без основного приложения, нуждающегося в повышенных правах.

Служба должна будет запрашивать только один раз, когда она установлена.

Если это звучит как слишком много работы, вы можете посмотреть на комплектацию утилиты SkipUAC, которая использует такой подход, чтобы позволить пользователям запускать приложения без запроса UAC при каждом запуске.

My Original Answer:

Если исполняемый файл имеет манифест с установленным администратором requireAdministrator, то он должен запускать запрос UAC только при каждом начальном запуске, но не после него (т.е. все операции, включая другие приложения, запущенные начальным процессом, унаследуют повышенные разрешения, но если вы выйдете из приложения и запустите его снова, то запрос появится еще раз).

Вы можете настроить манифест для EXE через IDE в Visual Studio 2008/2010, или используя утилиту командной строки, которая идет с последним пакетом обновлений для VS 2005 (это можно интегрировать в этап сборки для автоматизации процесса, но это немного помадка в 2005 году).

Я бы поискал в интернете "UAC" и "манифест" для получения дополнительной информации, это достаточно хорошо документировано в онлайн MSDN документации (когда-то знал, что вы будете искать его).

Это одинаково работает в Windows 7 и Windows Vista.

3
ответ дан 18 December 2019 в 09:07
поделиться

Ответ на ваш вопрос: Нет, вы не можете этого сделать.


Microsoft категорически запрещает такое поведение. Если бы приложения могли добавить себя в список исключений, мы вернулись бы к тому беспорядку, который у нас был раньше.

Что вам нужно сделать, так это сделать так, чтобы ваша программа не требовала административного доступа.

Спросите себя: Что вы делали в Windows XP?

  • мне не разрешено запускать ваше программное обеспечение?
  • происходит ли сбой в работе вашего программного обеспечения, когда я являюсь стандартным пользователем?
  • ваше программное обеспечение не представляют никакой ценности и не имеют абсолютно никакой функциональности при запуске обычным пользователем?

Windows XP не убеждает UAC. Единственный способ для пользователя запустить вашу программу от имени администратора - это войти в систему с другим пользователем. И это намного хуже, чем нажатие кнопки «Продолжить».

Если вы не хотите писать программное обеспечение, удобное для пользователя, то вы - часть проблемы. UAC - это не проблема, UAC - это удобство. Я могу отключить UAC, работать как стандартный пользователь на постоянной основе, и ваше программное обеспечение по-прежнему не будет работать.


Microsoft рассмотрела

  • белые списки
  • Запомните мои предпочтения
  • Больше не спрашивайте.

Если бы у вас был белый список, то каждая программа просто добавляла бы себя в такой список во время установки.

Если бы такой белый список существовал, ваше приложение могло бы стать целью вредоносного ПО. Он хотел бы изменить двоичный файл для выполнения того, что он хочет; поскольку он знает, что программа будет автоматически повышена.

Вредоносное ПО с удовольствием проткнет ваше приложение с помощью SendMessage, пытаясь передать недопустимые данные или структуры, пытаясь заставить ваше административное приложение выполнить требуемый код.

Если бы у пользователя была возможность отключить будущие подсказки для программ, он бы просто сделал это, и каждая программа запускалась бы от имени администратора, и мы вернемся к тому, как было.

Все эти идеи не решают проблему: почти ни одна программа не требует административного доступа .

Наконец-то пришло время заставить разработчиков смириться с этим фактом.


Белые списки не могут работать

Некоторые люди хотят придумать способы заставить белые списки работать.

  • Установите флажок, в котором пользователь может сказать: «Больше не запрашивать этот файл».
    Если вы сохраните это имя файла, то другие программы с тем же именем будут запускаться в автоматическом режиме как администраторы.

  • Хорошо, тогда мы запишем полный путь или воспользуемся хешем файла в качестве записи в белом списке. Если есть белый список, тогда другие программы будут добавляться в этот список при установке и будут запускать программы с административным доступом, который пользователю не нужен.

  • Что, если разрешены только подписанные приложения, тогда мы будем знать, что они безопасны. Приложения небезопасны, потому что они подписаны. Приложение не обязательно должно быть вредоносным, чтобы использовать его для совершения плохих действий. (например, переполнение буфера во flash, firefox, т.е. chrome, safari, opera, word, photoshop, инструмент загрузки изображений Yahoo).

Вы должны сохранить список действующих лиц, подписывающих код, в списке somehwere . И независимо от того, как вы его разделите, наличие любого белого списка будет означать, что приложения просто добавят себя в этот список.

  • Ну, тогда не позволяйте им доступ к списку. Даже администраторам не разрешается добавлять элементы в список. Если даже администраторы не могут добавлять элементы в список, тогда как пользователь может добавлять элементы в список в первую очередь? Вы не можете добавлять элементы в белый список, если вам не разрешено добавлять элементы в белый список!

А как вы ведете белый список? Допустим, пользователь передумал, или папа передумал, или ИТ передумали, или компания передумала, или издатель программного обеспечения передумал: как удалить элементы из списка, особенно когда никто разрешено изменять список.

Резюме: Белые списки не работают .

13
ответ дан 18 December 2019 в 09:07
поделиться

Разработчикам нужна пощечина, не так ли ???

Я создал 2 программы резервного копирования.

Оба требуют прав администратора для запуска .... почему? Так что, конечно же, пользователь может создавать резервные копии файлов, где бы они ни находились ..

Могу ли я запустить это как службу в фоновом режиме? маби? Возможно нет.

Это причина того, что все программное обеспечение AV, например, имеет службы в фоновом режиме. Таким образом, графический интерфейс - это просто графический интерфейс, который и есть он ... не имеет никаких функциональных возможностей, кроме передачи команды / информации обратно в служба, в которой запускаются команды и т. д.

Работают ли белые списки, зависит от пользователей ... Я знаю пользователей, которые на самом деле просто все время нажимают "РАЗРЕШИТЬ" ... они даже не читают его. {{1} } Итак, как их защищает UAC, такие глупые замечания и т. Д. Не помогают. Они делают это, потому что UAC предлагает им каждый раз, когда они что-то делают.

Программы резервного копирования, запуск приложений, компиляторы, генераторы. Для всего этого, например, требуются права администратора.

Откровенно говоря, служба не всегда является ответом, поскольку на ее реализацию уходит много времени, и вы не можете быть уверены, что она будет удалена / перезапущена (автоматическое обновление), когда это необходимо.

0
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: