Как получить на COM сервере имя машины клиента
От: georges1  
Дата: 06.07.02 08:38
Оценка:
Как получить на COM сервере имя машины клиента вызвавшего етот сервер
Re: Как получить на COM сервере имя машины клиента
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.07.02 15:57
Оценка:
Здравствуйте georges1, Вы писали:

G>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


Передать его в качестве параметра.

Имя клиента узнать можно (через защиту).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Как получить на COM сервере имя машины клиента
От: Alex Fedotov США  
Дата: 06.07.02 16:27
Оценка:
Здравствуйте VladD2, Вы писали:

G>>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


VD>Передать его в качестве параметра.


VD>Имя клиента узнать можно (через защиту).


Имя машины тоже можно как-то узнать, но весьма неочевидным способом (где-то в районе маршалинга). Помню, году в 97-98 в MSJ была статья на эту тему то ли Keith Brown, то ли Don Box. Навскидку найти ничего не удается, к сожалению.

Но лучше, конечно, не извращаться, а передать явно в качестве параметра.
-- Alex Fedotov
Re[3]: Как получить на COM сервере имя машины клиента
От: Аноним  
Дата: 06.07.02 19:36
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте VladD2, Вы писали:


G>>>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


VD>>Передать его в качестве параметра.


VD>>Имя клиента узнать можно (через защиту).


AF>Имя машины тоже можно как-то узнать, но весьма неочевидным способом (где-то в районе маршалинга). Помню, году в 97-98 в MSJ была статья на эту тему то ли Keith Brown, то ли Don Box. Навскидку найти ничего не удается, к сожалению.

Спасибо поищу

AF>Но лучше, конечно, не извращаться, а передать явно в качестве параметра.

К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.
Re[4]: Как получить на COM сервере имя машины клиента
От: Alex Fedotov США  
Дата: 06.07.02 20:34
Оценка:
Здравствуйте Аноним, Вы писали:

AF>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра.

А>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.

Достаточно изобретательный, а главное, мотивированный клиент сможет подменить имя в любом случае.
-- Alex Fedotov
Re[5]: Как получить на COM сервере имя машины клиента
От: Аноним  
Дата: 07.07.02 07:54
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Аноним, Вы писали:


AF>>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра.

А>>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.

AF>Достаточно изобретательный, а главное, мотивированный клиент сможет подменить имя в любом случае.


К сожалению реальность такова . Несложно найти в программе извлечение имени или адреса машины и подменить на постоянный

Но спасибо что напопомнили — нашел статью Don Box на ету тему
Re[4]: Как получить на COM сервере имя машины клиента
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.07.02 19:45
Оценка:
Здравствуйте Аноним, Вы писали:

АAF>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра.

А>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.


Сделай wire-тип (тип с wire-маршалингом), и в функции маршалинга запихивай имя сервера. Внешне ничего вдино не будет. Если клиент не хакер с Софтайсом, то проблему решит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Как получить на COM сервере имя машины клиента
От: Alex Fedotov США  
Дата: 08.07.02 00:04
Оценка:
Здравствуйте Аноним, Вы писали:

А>Но спасибо что напопомнили — нашел статью Don Box на ету тему


Если не сложно, подкинь ссылочку. Для коллекции.
-- Alex Fedotov
Re[7]: Как получить на COM сервере имя машины клиента
От: Аноним  
Дата: 08.07.02 08:05
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Аноним, Вы писали:


А>>Но спасибо что напопомнили — нашел статью Don Box на ету тему


AF>Если не сложно, подкинь ссылочку. Для коллекции.


Все просто в жизни —
MSDN ищешь CoRegisterChannelHook, там статья

Вот если б кто подсказал сайт Don Box я был бы очень благодарен. Потому как не уверен что он работает правильно
Re: Как получить на COM сервере имя машины клиента
От: Vsevolod V.Burkutsky Россия  
Дата: 02.09.02 15:06
Оценка:
Здравствуйте georges1, Вы писали:

G>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


Вопрос в догонку, а как получить текущего пользователя на клиенте ?
With best regards
Vsevolod V.Burkutsky...
Re[2]: Как получить на COM сервере имя машины клиента
От: Ерусов Дмитрий  
Дата: 02.09.02 15:51
Оценка:
Здравствуйте Vsevolod V.Burkutsky, Вы писали:

VVB>Здравствуйте georges1, Вы писали:


G>>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


VVB>Вопрос в догонку, а как получить текущего пользователя на клиенте ?


или GetUserName или через IADsADSystemInfo
Re[3]: Как получить на COM сервере имя машины клиента
От: Аноним  
Дата: 02.09.02 16:06
Оценка:
Здравствуйте Ерусов Дмитрий, Вы писали:

ЕД>Здравствуйте Vsevolod V.Burkutsky, Вы писали:


VVB>>Здравствуйте georges1, Вы писали:


G>>>Как получить на COM сервере имя машины клиента вызвавшего етот сервер


VVB>>Вопрос в догонку, а как получить текущего пользователя на клиенте ?


ЕД>или GetUserName или через IADsADSystemInfo


Несовсем то..

Наверное неправильно задал вопрос.
Есть сервер W2K ( WinNT Service ), клиент W98.
Клиент создаёт на сервере Сом-объект, дёргает его метод.
Нужно узнать имя клиента ( имя пользователя под которвм запущен процесс, вызывающий метод сервера )
Re[4]: Как получить на COM сервере имя машины клиента
От: Ерусов Дмитрий  
Дата: 02.09.02 16:31
Оценка: 8 (1)
Нечто типа

RpcImpersonateClient()
OpenThreadToken()
GetTotenInformation()
LookupAccountSid()
RpcRevertToSelf()

можно покапаться и в функциях SSPI
тама тожно можно мне кажеться найти
Re[5]: Как получить на COM сервере имя машины клиента
От: Аноним  
Дата: 02.09.02 16:39
Оценка:
Здравствуйте Ерусов Дмитрий, Вы писали:


ЕД>Нечто типа


ЕД>RpcImpersonateClient()

ЕД>OpenThreadToken()
ЕД>GetTotenInformation()
ЕД>LookupAccountSid()
ЕД>RpcRevertToSelf()

ЕД>можно покапаться и в функциях SSPI

ЕД>тама тожно можно мне кажеться найти

Ими я сейчас и пытаюсь сделать, проблемы с DCOM и W98
вызов метода возвращает 0x80070721
если CoInitializeSecurity с RPC_C_AUTHN_LEVEL_CONNECT
как требует СoImpersonateClient, о-па, я-же другими ф-циями пользовался,
вначале незаметил , попробую через Rpc ( но походу это одно и то-же,
СoXXX вызывает соответсв RpcXXX )
Re[6]: Как получить на COM сервере имя машины клиента
От: Vsevolod V.Burkutsky Россия  
Дата: 04.09.02 10:11
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Ерусов Дмитрий, Вы писали:


А>

ЕД>>Нечто типа

ЕД>>RpcImpersonateClient()

ЕД>>OpenThreadToken()
ЕД>>GetTotenInformation()
ЕД>>LookupAccountSid()
ЕД>>RpcRevertToSelf()

ЕД>>можно покапаться и в функциях SSPI

ЕД>>тама тожно можно мне кажеться найти

А>Ими я сейчас и пытаюсь сделать, проблемы с DCOM и W98

А>вызов метода возвращает 0x80070721
А>если CoInitializeSecurity с RPC_C_AUTHN_LEVEL_CONNECT
А>как требует СoImpersonateClient, о-па, я-же другими ф-циями пользовался,
А>вначале незаметил , попробую через Rpc ( но походу это одно и то-же,
А>СoXXX вызывает соответсв RpcXXX )

Проблема отпала.
( Правда появилась куча других )

P.S. Outlook забыл мое имя и пароль ( посление сообщения были моими )
With best regards
Vsevolod V.Burkutsky...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.