У меня есть приложение С#,.Net 4.6.1 Windows Forms, работающее на платформах Windows Server (2008 или выше), которое должно быть "Запуск от имени администратора". Требуются повышенные привилегии, потому что приложение меняет права доступа пользователей к различным папкам (в случае, если это важно для корневого веб-сайта по умолчанию IIS).
Мне не повезло в обнаружении, было ли приложение "Запуск от имени администратора". Если я обычно запускаю приложение (это не как Администратор), следующий код
var isAdmin = WindowsIdentity.GetCurrent().Owner.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid);
возвращает true
, но код, который изменяет некоторые права доступа пользователя к каталогу, выходит из строя с ошибкой Недопустимые привилегии.
Если я запустил приложение как администратор, вышеуказанная проверка также возвращает true
, но изменение прав доступа пользователя работает нормально.
Другие попытки, которые я сделал без успеха:
- Используя метод
GetTokenInformation
внутри файла advapi32.dll, как предложено здесь - Добавление файла манифеста в приложение, где я установил
requestedExecutionLevel
вrequireAdministrator
Заранее благодарим за помощь.