Здравствуйте 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 сервере имя машины клиента
Здравствуйте Аноним, Вы писали:
AF>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра. А>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.
Достаточно изобретательный, а главное, мотивированный клиент сможет подменить имя в любом случае.
-- Alex Fedotov
Re[5]: Как получить на COM сервере имя машины клиента
От:
Аноним
Дата:
07.07.02 07:54
Оценка:
Здравствуйте Alex Fedotov, Вы писали:
AF>Здравствуйте Аноним, Вы писали:
AF>>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра. А>>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.
AF>Достаточно изобретательный, а главное, мотивированный клиент сможет подменить имя в любом случае.
К сожалению реальность такова . Несложно найти в программе извлечение имени или адреса машины и подменить на постоянный
Но спасибо что напопомнили — нашел статью Don Box на ету тему
Re[4]: Как получить на COM сервере имя машины клиента
Здравствуйте Аноним, Вы писали:
АAF>>Но лучше, конечно, не извращаться, а передать явно в качестве параметра. А>К сожалению нельзя — клиент может подменить имя! Нужно что-то кардинальное — уникальная информация по машине.
Сделай wire-тип (тип с wire-маршалингом), и в функции маршалинга запихивай имя сервера. Внешне ничего вдино не будет. Если клиент не хакер с Софтайсом, то проблему решит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Как получить на COM сервере имя машины клиента
Здравствуйте Аноним, Вы писали:
А>Но спасибо что напопомнили — нашел статью 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, Вы писали:
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[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 сервере имя машины клиента
Здравствуйте Аноним, Вы писали:
А>Здравствуйте Ерусов Дмитрий, Вы писали:
А> ЕД>>Нечто типа
ЕД>>RpcImpersonateClient() ЕД>>OpenThreadToken() ЕД>>GetTotenInformation() ЕД>>LookupAccountSid() ЕД>>RpcRevertToSelf()
ЕД>>можно покапаться и в функциях SSPI ЕД>>тама тожно можно мне кажеться найти
А>Ими я сейчас и пытаюсь сделать, проблемы с DCOM и W98 А>вызов метода возвращает 0x80070721 А>если CoInitializeSecurity с RPC_C_AUTHN_LEVEL_CONNECT А>как требует СoImpersonateClient, о-па, я-же другими ф-циями пользовался, А>вначале незаметил , попробую через Rpc ( но походу это одно и то-же, А>СoXXX вызывает соответсв RpcXXX )
Проблема отпала.
( Правда появилась куча других )
P.S. Outlook забыл мое имя и пароль ( посление сообщения были моими )