powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск ПО под админом
15 сообщений из 15, страница 1 из 1
Запуск ПО под админом
    #38913340
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ПО, которое берет пользователя Windows, который залогинился и записывает его в определенные таблички БД. Кроме этого ПО решает ряд задач, для которых нужны права администратора. И вот тут возникает проблема. Если в Windows залогинился пользователь с права не админскими, то софт запрашивает логин и пароль администратора(запрос прописан в манифесте). Все бы хорошо, но программка теперь текущим пользователем определяет не того, кто залогинился в ОС, а того, под кем была запущена.
Как определить того, кто реально в системе залогинен?
На ум приходит альтернативное решение: в начале запуска программы проверять является ли пользователь, членом группы администраторов:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public bool IsAdministrator()
{
    bool isAdmin;
    try
    {
        System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
        System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
        isAdmin = principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
    }
    catch (UnauthorizedAccessException ex)
    {
        isAdmin = false;
    }
    catch
    {
        isAdmin = false;
    }
    return isAdmin;
}


и если пользователь не член группы админов, то запросить логин и пароль и сменить привилегии приложения. Возможно ли такое? Т.е. запускается приложении под пользователем, а продолжает работу после проверки под админом?
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913377
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913408
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо путать Windows аутентификацию и права БД. Пользователь либо является локальным (доменным) администратором, либо нет. Тут поможет только манифест. Либо имперсонация . Всё.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913609
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе надо путать Windows аутентификацию и права БД. Пользователь либо является локальным (доменным) администратором, либо нет. Тут поможет только манифест. Либо имперсонация . Всё.
Про права БД ничего не говорил. Можно вообще забыть про бд. Важно получить данные по пользователю, которые залогинен, а не тот, кто запускает по.
Посмотрю сейчас Ваш пример, спасибо.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913611
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesСупер_Пав,

http://www.sql.ru/forum/1142200/vyzov-okna-zaprosa-prav-administratora
спасибо, неплохой вариант. Подумаю, как прикрутить. Посмотрю еще от МСУ вариант
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913673
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_ПавRoman MejtesСупер_Пав,

http://www.sql.ru/forum/1142200/vyzov-okna-zaprosa-prav-administratora
спасибо, неплохой вариант. Подумаю, как прикрутить. ...
Согласен, что неплохой.
Посмотри еще мой вариант того же самого (под спойлером):
17069205

Идея состоит в том, что при необходимости сделать что-то под админом, ты перезапускаешь свой же exe-шник с "RunAs"(вводишь пароль админа) и например с каким-либо ключом командной строки, и он тебе делает "твою админскую задачу", после чего например возвращает код завершения(OK/Cancel/Failed) в функцию из которой был вызван(в неадминский запуск в котором работаешь).

Что касается манифеста "всегда админ", лично я большой противник этого, хотя не все тут с этим согласны.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38913700
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Что касается манифеста "всегда админ", лично я большой противник этого, хотя не все тут с этим согласны.
... например, я :)
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38914019
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДмитрий77Что касается манифеста "всегда админ", лично я большой противник этого, хотя не все тут с этим согласны.
... например, я :)
отличный способ, не знал про него. 1 из плюсов, у программы сразу появляется ярлык оповещающий, что программа требует повешенных прав для работы. не понятно только, чем он не нравится Дмитрию и какие могут быть подводные камни?
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38914319
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes чем он не нравится Дмитрию и какие могут быть подводные камни?

Хорош, сам посоветовал "мой метод", а теперь меня же и критикуешь в пользу "манифеста".
Я про манифест давно знаю, но против него.
Почему, пост который я привел +/- несколько ответов вверх-вниз, я там все написал что об этом думаю.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38914402
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesчем он не нравится Дмитрию и какие могут быть подводные камни?
Чем не нравится Дмитрию манифест, можно прочитать в топике, на который он дал ссылку. А подводных камней в манифесте нет, именно в этом его плюс.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38914853
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДмитрий77Что касается манифеста "всегда админ", лично я большой противник этого, хотя не все тут с этим согласны.
... например, я :)

+
меня допишите
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38915128
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утички, вот он, нарисовался
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38915247
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный дискус у вас тут.
Вообщем что имеем? Создал 2х пользователей на машине: 1) обычный пользователь 2) админ.
Вхожу в систему под 1м пользователем.
Пробую первый способ - перезапуск приложения с параметром runas. Убиваю систему тем, что приложение почему-то запускается не под админом, а под пользователем. Получаю бесконечный цикл, когда приложение проверяет роль, если не админ, то запускает само себя еще раз. В итоге получаю плодящиеся окна. Мораль - запуск приложения в режиме "Запуск от имени администратора" в реальности запускает ПО с обычными правами. Хз почему.

Пробую 2й способ - имперсонация. Смена пользователей происходит, а вот права не меняются. Тестировал на записи данных в реестр и на установке службы Windows, получаю ошибку "Требуемый уровень олицетворения не обеспечен, или обеспеченный уровень неверен."

У кого есть мысли какие? Начинаю делать 2е приложение, которое будет запускаться под пользователем, который залогинен в системе и в основное ПО будет передавать параметрами инфу о пользователе. Основное ПО запускаю с манифестом.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38915295
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_Пав,

в Windows Vista и выше владельцем системных файлов и веток реестра Administrator не является.
...
Рейтинг: 0 / 0
Запуск ПО под админом
    #38915315
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_Павперезапуск приложения с параметром runas. Убиваю систему тем, что приложение почему-то запускается не под админом, а под пользователем.
Что-то ты не то делаешь.
UAC - Окошко должно выскочить, где предлагается пароль ввести (если тек. user итак админ, по дефолту он на >=Vista работает без прав админа, то пароль вводить не надо, просто подтвердить OK)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запуск ПО под админом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]