powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с функцией API
12 сообщений из 12, страница 1 из 1
Помогите с функцией API
    #33506847
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжении темы ввода одного пароля, разбираюсь с индентификацие юзера в Activedirectory

Кто поможет правильно описать внешную функцию API
MSDNBOOL GetTokenInformation(
HANDLE TokenHandle,
TOKEN_INFORMATION_CLASS TokenInformationClass,
LPVOID TokenInformation,
DWORD TokenInformationLength,
PDWORD ReturnLength
);

Parameters
TokenHandle
[in] Handle to an access token from which information is retrieved. If TokenInformationClass specifies TokenSource, the handle must have TOKEN_QUERY_SOURCE access. For all other TokenInformationClass values, the handle must have TOKEN_QUERY access.
TokenInformationClass
[in] Specifies a value from the TOKEN_INFORMATION_CLASS enumerated type to identify the type of information the function retrieves.
TokenInformation
[out] Pointer to a buffer the function fills with the requested information. The structure put into this buffer depends upon the type of information specified by the TokenInformationClass parameter, as shown in the following table.


Что я пытаюсь написать в Local External function
Function BOOLEAN GetTokenInformation(HANDLE TokenHandle,uint TokenInformationClass, ref string TokenInformation, ref ulong TokenInformationLength, ref ulong ReturnLength
)

Как правильно описать HANDLE TokenHandle, что это должно быть?

TokenInformationClass = 1 (Token_user)

Link to MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/gettokeninformation.asp
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33506961
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PashaКак правильно описать HANDLE TokenHandle, что это должно быть?
Код: plaintext
uint TokenHandle
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33506991
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще дополнительный вопрос.

вот что у меня получается:
Код: plaintext
1.
2.
3.
Local external function
Function BOOLEAN GetTokenInformation( uint TokenHandle, uint TokenInformationClass, ref string TokenInformation, &
  			ref ulong TokenInformationLength, ref ulong ReturnLength) library "Advapi32.dll"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Функция of_gettoken
входные параметры int fi_tokenhanle, int fi_token_class
boolean	lb_rc
ulong		lul_size =  255 
string 	ls_name

ls_name = space(lul_size)

lb_rc = GetTokenInformation(fi_token_handle, fi_token_class, ls_name, lul_size, lul_size)

If not lb_rc THEN
	ls_name = of_error()
	return ls_name
else
	return ls_name
end if

и в приложении:
Код: plaintext
1.
2.
3.
4.
5.
6.
integer li_handle, li_class

li_handle  = 
li_class =  1 
lcst_win32 = create n_cst_win32_api
ls_user_token = lcst_win32.of_gettoken(li_handle, li_class)
Destroy lcst_win32

какое значение должно принимать переменная li_handle ????
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507082
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pashaкакое значение должно принимать переменная li_handle ????
Судя по тому, что это тип handle указатель на объект данного класса вам кто-то должен вернуть.
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507090
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько я знаю uint в PB может принимать значения от 0 до 65535 (2 байта).
Все HANDLE и int и uint в 32-х разрядной системе - 4 байта.
Т.е. вам все надо обьявлять в билдере long или ulong.
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507159
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB после описания не ругается, но возвращает пустоту

все это делается чтобы получить SecurityID пользователя из access token
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507306
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помоему я ушел в бредни и не на правильном пути, чтобы определить что это пользователь из нашего домена.
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507363
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PashaPB после описания не ругается, но возвращает пустоту

все это делается чтобы получить SecurityID пользователя из access token

получить handle должна функция OpenЧтотоТамToken(...ref ulong handle)
( и закрывать потом надо CloseHandle(...) )
буфер это не ref string а структура, причем какая именно зависит от uint TokenInformationClass.
причем там могут быть вложенные массивы структур с указателями на структуры или что-то не менее шизоидное.
того кто проектировал это API надо было убить прежде чем он дорвался до проектирования.
тут даже зная Си и точно зная чего и как хочешь получить и то трудно справиться. так что на вызовах API из PB - дохлый номер.
только если писать свой DLL на Си с простым интерфейсом для PB а внутри уже крутить вызовы эти безумные со структурами разного формата.
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507421
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.На сколько я знаю uint в PB может принимать значения от 0 до 65535 (2 байта).
Да, все верно, это я типа опечатался. Указатели действительно 4 байта.
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507425
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я начал разбираться
вначале нужно вызвать OpenProcessToken, которая и вызывает этот хандле, с помощью которго уже можно вызвать GetTokenInformation, и конешно же в конце нужно сделать CloseHandle.
Эти команды как я понял из MSDN вызывают сам процес аутентификации.
А мне это не нужно.
Мне нужно проверить 2 вещи:
1) пользователь из нашего домена
2) коректно ли залогинился в наш домен
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507637
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pashaпомоему я ушел в бредни и не на правильном пути, чтобы определить что это пользователь из нашего домена.
посмотри мой пост тут ...
...
Рейтинг: 0 / 0
Помогите с функцией API
    #33507667
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexis glinski Pashaпомоему я ушел в бредни и не на правильном пути, чтобы определить что это пользователь из нашего домена.
посмотри мой пост тут ...

Да да спасибо как раз разбираюсь с этим точнее разобрался, разюбираюсь как вытащить Security Identifier
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Помогите с функцией API
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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