Использование CONNECT_INTERACTIVE | CONNECT_PROMPT в WNetAddConnection дает ошибку «Недопустимый флаг» при запуске приложения на сервере - PullRequest
0 голосов
/ 06 мая 2020

0

Я разрабатываю веб-приложение, в котором мне нужно подключить удаленный компьютер для доступа к файлам на его общем диске. Перед предоставлением доступа к этим файлам пользователь должен пройти аутентификацию. Я использую WNetUseConnection для вызова диалогового окна учетных данных.

WNetUseConnection (IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null);

Проблема с этим, что он отлично работает на моем локальном компьютере и правильно открывает диалоговое окно. Но когда я разместил ту же машину на сервере Windows 2016, я получаю сообщение «Win32Exception: Invalid flags».

Я также пытался указать идентификатор пользователя и пароль для входа в систему, и это работает нормально.

WNetUseConnection (IntPtr.Zero, nr, пароль, имя пользователя, 0, null, null, null);

Но по некоторым причинам выдает ошибку при запросе учетных данных

Спасибо !!!

Пример кода:

Public static Connect(string remoteUnc, string username, string password, bool promptUser)
    {
        NETRESOURCE nr = new NETRESOURCE
        {
            dwType = RESOURCETYPE_DISK,
            lpRemoteName = remoteUnc
        };

        int result;
        if (promptUser)
        {
            result = WNetUseConnection(IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null);
        }
        else
        {
            result = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null);
        }

        if (result != NO_ERROR)
        {
            throw new Win32Exception(result);
        }
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...