powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в .Net понять что App запущено под System?
2 сообщений из 2, страница 1 из 1
Как в .Net понять что App запущено под System?
    #39439223
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть .Net -экзешник. Он запускается через оболочку NSSM как "As Service" (Вход от имени: Локальная система).
Надо проверить, что он запущен "как должно" (т.е. под SYSTEM).
Если нет - на выход.
В часности какая-никакая защита от кривых ручек, т.е. видимого интерфейса exe-шник не имеет, но если он запущен под юзером, то может создать определенные проюлемы и т.п.

Т.е. проверить SYSTEM/не SYSTEM считаю достаточным.

У меня есть C-ф-ция когда-то написанная (а под VB6/Net что-то у себя не вижу готовой, странно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
BOOL IsLocalSystem() 
{
  SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
  PSID pSystem;
  if (AllocateAndInitializeSid(&NtAuthority, 1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0,&pSystem))
  {
    BOOL bResult;
    if (!CheckTokenMembership(NULL, pSystem, &bResult))
      bResult = FALSE;
    FreeSid(pSystem);
    return bResult;
  }
  return FALSE;
}



А вот для проверки "Админ/Не админ" есть к примеру .Net-вариант:
Код: vbnet
1.
2.
3.
  Public Function IsAdministrator() As Boolean
    Return New WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator)
  End Function



Есть аналогичный .Net-вариант чтоб SYSTEM проверить? (сходу чего-то не соображу)
Или перерисовать API вариант под .Net (сложного для себя не вижу)?
...
Рейтинг: 0 / 0
Как в .Net понять что App запущено под System?
    #39439226
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
  Public Function IsLocalSystem() As Boolean
    Return WindowsIdentity.GetCurrent().IsSystem
  End Function



Пойдет?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в .Net понять что App запущено под System?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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