Таким образом, между двумя машинами нет доверия - они находятся в разных доменах.
Я успешно подключился к удаленной машине, используя LogonUser API, используя тип входа, LOGON32_LOGON_NEW_CREDENTIALS . Я могу получить содержимое каталога, используя общий ресурс UNC, и создать поток файлов для его загрузки. Пока все хорошо.
Единственная проблема заключается в том, что, по-видимому, LogonUser дает сбой, если нет уже открытого сеанса. Позвольте мне уточнить это.
Я обнаружил, что страница ASP.NET MVC не работала сегодня утром, в частности страница, которая получает список файлов с этого удаленного компьютера с помощью LogonUser. Я просматриваю журнал и вижу в стеке трассировки System.IO .__ Error.WinIOError выше Directory.GetFiles вызов. Затем я переместился на веб-сервер и попытался открыть удаленную папку в проводнике, используя тот же логин / пароль, который использовался веб-сайтом. Это прошло, и я мог видеть файлы. Я открыл командную строку, набрал net use и увидел, что существует открытое соединение с удаленным компьютером. Затем я вернулся на страницу, и вдруг страница снова работает.
Итак, на данный момент, я не совсем уверен, работает ли LogonUser должным образом или нет. Если вызов требует, чтобы сетевое соединение было сначала открыто другими способами, то это, безусловно, не является удовлетворительным.
Кто-нибудь знает, что может происходить или предлагает обходной путь?