Webdav не может использовать встроенную аутентификацию после переноса домена - PullRequest
1 голос
/ 14 июля 2009

У нас есть программа, которая использует webdav, аутентификация с аутентификацией Windows, поэтому пользователям не нужно вводить свое имя пользователя и пароль. это работало нормально, пока мы не перенесли домен. теперь код, который использовался для подключения, возвращает код ошибки 5 (доступ запрещен):

string psPassword =null, psUsername=null;
structNetResource stNetRes = new structNetResource();
stNetRes.iScope = 2;
stNetRes.iType = RESOURCETYPE_DISK;
stNetRes.iDisplayType = 3;
stNetRes.iUsage = 1;
stNetRes.sRemoteName = WebDAVServerpath;
stNetRes.sLocalName = null; //connect, but don't show drive in my computer
int iFlags = CONNECT_CMD_SAVECRED;
int i = WNetAddConnection2A(ref stNetRes, psPassword, psUsername, iFlags);

У кого-нибудь есть идеи, как это исправить? Я пытался запустить

int j = WNetCancelConnection2A(WebDAVServerpath, CONNECT_UPDATE_PROFILE, 0); 

заранее, чтобы очистить все старые соединения, но это не работает.

(Запуск net use \\server.domain.com\share теперь запрашивает имя пользователя и пароль, тогда как раньше он использовался для прямого подключения, поэтому похоже, что что-то мешает аутентификации Windows.)

Редактировать - это приложение WinForms, IIS и общие файлы хранятся на одном компьютере. Проблема возникает только на машинах, которые были перенесены; ПК, которые были (и остаются) вне нашего домена, не затрагиваются.

1 Ответ

1 голос
/ 14 июля 2009

Если ваш файловый сервер и веб-сервер не являются одним и тем же компьютером, вам необходимо настроить файловый сервер для доверия веб-серверу для делегирования. Это позволяет файловому серверу доверять учетным данным, которые веб-сервер аутентифицировал, вместо повторного запроса учетных данных при каждом запросе.

...