Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
737 / 527 / 130
Регистрация: 31.05.2013
Сообщений: 2,975
Записей в блоге: 3
1

SID пользователя (Delphi)

15.03.2017, 14:22. Показов 3693. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго!
Есть код делфи, для получения SID текущего пользователя:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function ConvertSidToStringSid(Sid: PSID; var StringSid: PChar): Boolean; stdcall; external 'advapi32.dll' name 'ConvertSidToStringSidA';
procedure TfrmMain.Button1Click(Sender: TObject);
var
  UserName : PChar;
  UserSid : PSID;
  UserDomain : PChar;
  SidStr : PChar;
  NameSize, SidSize, DomainSize : cardinal;
  SidUse : SID_NAME_USE;
begin
  NameSize := 1024;
  SidSize := 1024;
  DomainSize := 1024;
  GetMem(UserName, NameSize);
  GetMem(UserSid, SidSize);
  GetMem(UserDomain, DomainSize);
  GetUserName(UserName, NameSize);
  LookupAccountName(nil, UserName, UserSid,  SidSize, UserDomain, DomainSize, SidUse);
  ConvertSidToStringSid (UserSid, SidStr);
  Caption := UserName + ' ' + UserDomain + ' ' + SidStr;
  LocalFree(Cardinal(SidStr));
  FreeMem(UserDomain);
  FreeMem(UserSid);
  FreeMem(UserName);
end;
что за функции GetMem и ConvertSidToStringSid? пров торое пишут что она вобще WinIp, у меня почему нет? и как это дело перевести?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2017, 14:22
Ответы с готовыми решениями:

SID пользователя
Привет всем.. Я столкнулся с такой проблемой.. Когда я запускаю свое приложение, мне его надо...

Группа и SID пользователя
День добрый! Не могли бы Вы подсказать. Через утилиту psgetsid.exe нужно прочитать и вывести в...

Как получить SID пользователя
Как получить SID пользователя, в контексте которого запущено приложение написанное на VB.NET.

Как получить SID текущего пользователя?
Как получить SID (тот самый идентификатор безопасности винды) текущего пользователя? Ну и сразу...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
15.03.2017, 14:38 2
Лучший ответ Сообщение было отмечено Dinkin как решение

Решение

Цитата Сообщение от Dinkin Посмотреть сообщение
GetMem
- выделение заданного объема памяти: System.GetMem

Цитата Сообщение от Dinkin Посмотреть сообщение
ConvertSidToStringSid
Это-таки WinAPI, но для ее использования надо подключить Sddl.h (в MSDN же все написано)
1
737 / 527 / 130
Регистрация: 31.05.2013
Сообщений: 2,975
Записей в блоге: 3
15.03.2017, 17:39  [ТС] 3
ConvertSidToStringSidW а ка кв него правильно параметры то передавать?

C++
1
2
3
    wchar_t u[256];
    PSID lpUserSid
    ConvertSidToStringSidW(lpUserSid,&u) ;
Так не катит.

Добавлено через 4 минуты
А понял, типа так
C++
1
2
PChar u;
ConvertSidToStringSidW(lpUserSid,&u) ;
Просто меня тут идея возникла на сколько реально можно вытянуть SID пользователя от дескриптора рабочего экрана.

Добавлено через 20 минут
Делаю так, но видимо это делается ни так

C++
1
2
3
4
5
6
7
8
9
 PChar u;
 HDESK Desktop = OpenInputDesktop(0, FALSE, MAXIMUM_ALLOWED);
 DWORD dwSidLength = 0;
 GetUserObjectInformation(Desktop, UOI_USER_SID, NULL, 0, &dwSidLength);
 PSID UserSid = (PSID)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSidLength);
 GetUserObjectInformation(Desktop, UOI_USER_SID, UserSid, dwSidLength, &dwSidLength);
 
 ConvertSidToStringSidW(UserSid,&u) ;
 Memo1->Lines->Add(u) ;
Добавлено через 2 часа 23 минуты
Вопрос был решен В этой теме
0
15.03.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2017, 17:39
Помогаю со студенческими работами здесь

Как службой (запускаемой от SYSTEM) определить SID активного пользователя
Подскажите решение

Получить имя пользователя и домена по его SID с выключенной сетью
Добрый день! Стоит задача, получить имя пользователя и домена зная его SID если выключенна сеть....

Запись видео DVD - Владелец кода идентификации (SID) для подписки "на пользователя" не найден
При помощи DVD студии Windows пытаюсь записать фильм на диск как DVD-Video. Настраиваю вид меню,...

Delphi 2 пользователя
Ребята есть 2 формы. На 1 форме содержится 2 эдита и три баттона. Хочу сделать так когда вводишь у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru