Есть ли альтернативы LogonUser и для олицетворения данной учетной записи для доступа к сетевым ресурсам? Я ищу метод олицетворения, который позволил бы мне подключиться к машине в чужих доменах (или машинам рабочей группы для того же вопроса).
Для исходных данных у меня есть: имя машины, имя пользователя (или домен \ имя пользователя), пароль в виде открытого текста.
Я знаю, что есть способ установить соединение, используя WNetAddConnection с \\ machinename \ ipc $, тогда большинство сетевых функций будут работать в контексте этой учетной записи, однако win2008 добавил еще один поворот, и некоторые функции все еще используют учетную запись, этот поток работает под.
Я также знаю, что есть какой-то способ получить маркер олицетворения с помощью SSPI. Кто-нибудь экспериментировал с этими токенами, хороши ли они для доступа к общим ресурсам, SCM, удаленному реестру и тому подобному? Для чего используется WNetAddConnection?
РЕДАКТИРОВАТЬ: Чтобы уточнить, причина, по которой я не могу использовать LogonUser, заключается в том, что мне нужно выдать себя за пользователя в ненадежном домене или рабочей группе
EDIT2: Еще одно уточнение: элемент, который я пытаюсь реализовать, похож на psexec, например ::
- программа не должна изменять конфигурацию хоста или активного каталога (например, создавать временных локальных пользователей и т. Д.). Более того, нельзя предположить, что он работает на постоянном токе или нет
- Не может быть никаких предположений относительно того, какое программное обеспечение предварительно установлено на удаленном хосте, только при условии, что общий доступ к файлам Windows включен на цели
- Известно, что учетная запись / пароль работают на целевом сервере, но целевой компьютер может находиться в локальном домене, чужом домене, а не в домене.
EDIT3: Мне бы очень хотелось узнать больше об опции SSPI InitializeSecurityContext / AcquireCredentialsHandle. Есть ли кто-нибудь, кто интенсивно работал с этим API? Можно ли использовать токены, возвращенные с олицетворением, чтобы поток мог обращаться к сетевым ресурсам, копировать файлы и т. Д.? Может кто-нибудь выложить рабочий фрагмент кода?
EDIT4: Благодаря Marsh Ray проблема решена. Если кто-то ищет код проверки концепции, он здесь