информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Хм... Вот я и говорю, что не понятно. 28.01.02 14:07  Число просмотров: 947
Автор: Harald Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проблема в том, что возвращается S_OK. Я был бы рад увидеть какую-нибудь ошибку. Пока я грешу лишь на то, что удаленный сервер это адрес 127.0.0.1. Опробовать на настоящем удаленном сервере пока нет возможности.
<programming>
[DCOM] Может кто-то знает... 28.01.02 01:32  
Автор: Harald Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Под Win2k в функции CoInitializeSecurity можно указать дополнительный параметр SOLE_AUTHENTICATION_LIST * pAuthList.
В структуре SEC_WINNT_AUTH_IDENTITY можно указать имя пользователя и пассворд для идентификации пользователя удаленным компонентом.
Таким образом, теоретически, наверное, имелось ввиду, что для запуска удаленного сервера от имени User2\Password2 не обязательно входить в систему на машине клиента под этим пользователем, а можно зайти под пользователем User1\Password1 и просто указать значения User2 и Password2 в структуре SEC_WINNT_AUTH_IDENTITY.
Однако, это не работает... Точнее работает, но не так как нужно. Если даже указать несуществующего пользователя NotExistingUser, которого нет на клиентской машине и нет в ACL удаленного сервера можно создать instance объекта. Просто на самом деле вызов все-таки происходит от имени интерактивного пользователя клиентской машины (User1\Password1), а не от имени User2\Password2. Почему-то игнорируются значения, указанные при инициализации безопасности процесса. Кто-нибудь сталкивался с такой проблемой? Хэлпайте, если поняли что я тут написал :о)

З.Ы. кусок кода примерно такой:
::CoInitialize(NULL);

// Auth Identity structure
SEC_WINNT_AUTH_IDENTITY_W authidentity;
ZeroMemory( &authidentity, sizeof(authidentity) );

WCHAR User[32] = L"NotExistingUser";
WCHAR Domain[32] = L"NotExistingDomain";
WCHAR Password[32] = L"BadPssword";

int UserLength, DomainLength, PasswordLength;

authidentity.User = (unsigned short*)User;
UserLength = wcslen(User);
authidentity.UserLength = UserLength;

authidentity.Domain = (unsigned short*)Domain;
DomainLength = wcslen(Domain);
authidentity.DomainLength = DomainLength;

authidentity.Password = (unsigned short*)Password;
PasswordLength = wcslen(Password);
authidentity.PasswordLength = PasswordLength;
authidentity.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;

// Auth Info structure
SOLE_AUTHENTICATION_INFO authninfo[2];
ZeroMemory( authninfo, sizeof( authninfo ) );

// NTLM Settings
authninfo[0].dwAuthnSvc = RPC_C_AUTHN_WINNT;
authninfo[0].dwAuthzSvc = RPC_C_AUTHZ_NONE;
authninfo[0].pAuthInfo = &authidentity;

// Kerberos Settings
authninfo[1].dwAuthnSvc = RPC_C_AUTHN_GSS_KERBEROS ;
authninfo[1].dwAuthzSvc = RPC_C_AUTHZ_NONE;
authninfo[1].pAuthInfo = &authidentity;

SOLE_AUTHENTICATION_LIST authentlist;

authentlist.cAuthInfo = 2;
authentlist.aAuthInfo = authninfo;

HRESULT result = CoInitializeSecurity... далее не интересно...
[DCOM] Может кто-то знает... 28.01.02 21:52  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
ty dolzhen skohfigurirovat` etot object na servere ispolzui "dcomcnfg.exe"
i posmotri "Identity" tab, pohozhe chto u tebia stoit interactive user to run this object.
[DCOM] Может кто-то знает... 28.01.02 11:28  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
CoInitializeSecurity можно вызвать только ОДИН раз, в твоем случае она скорее всего уже вызывалась самой подсистемой СОМ. Посмотри, что она возвращает, скорее всего это будет RPC_E_TOO_LATE, что как раз и говорит о том, что она уже вызывалась.

А здесь можно подробнее про эту функцию почитать...
Хм... Вот я и говорю, что не понятно. 28.01.02 14:07  
Автор: Harald Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проблема в том, что возвращается S_OK. Я был бы рад увидеть какую-нибудь ошибку. Пока я грешу лишь на то, что удаленный сервер это адрес 127.0.0.1. Опробовать на настоящем удаленном сервере пока нет возможности.
Хм... Вот я и говорю, что не понятно. 28.01.02 15:20  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> Проблема в том, что возвращается S_OK. Я был бы рад увидеть
> какую-нибудь ошибку. Пока я грешу лишь на то, что удаленный
> сервер это адрес 127.0.0.1. Опробовать на настоящем
> удаленном сервере пока нет возможности.

А на локальном сервере, на мой взгляд, и не должно работать. Ведь ты уже инициализировал один раз секьюрити для своего DCOM (или система инициализировала), она и берет имеющиеся значения юзер/пассворд. А те, что ты ей даешь - игнорирует. А почему удаленный сервер нельзя использовать? Сетки локальной нет, что-ли? Тогда дай своему компу IP адрес какой-нибудь от балды, типа 10.10.10.10 - и пробуй!
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach