Windows API сбрасывают токены аутентификации - PullRequest
7 голосов
/ 13 июля 2011

Я использую WNetEnumResource для перечисления всех сетевых подключений и WNetCancelConnection2 для их закрытия. Затем я использую WNetUseConnection для подключения к общему ресурсу с использованием дискретных учетных данных. Этот процесс происходит несколько раз в течение дня.

Проблема, с которой я сталкиваюсь, заключается в том, что после первого прохождения процесса я получаю:

Произошла системная ошибка 1219.

Несколько подключений к серверу или общему ресурсу одним и тем же пользователем, использование более одного имени пользователя не допускается. Отключить все предыдущие подключения к серверу или общему ресурсу и повторите попытку.

Это происходит, даже когда перечисление говорит, что нет текущих соединений.

Мой вопрос: почему? Почему я получаю эту ошибку? Подключено ли к серверу аутентифицированное соединение с сервером? Могу ли я перечислить эти токены аутентификации? Kerberos? LSA

Я не смог найти наименьшее утвердиться информации для продвижения вперед по этому проекту. Любая помощь приветствуется!

1 Ответ

2 голосов
/ 18 декабря 2012

Я пытаюсь вспомнить решение, которое мы использовали, когда столкнулись с этой проблемой для программы резервного копирования по сети несколько лет назад.

Я уверен, что решение предполагает использование WNetAddConnection2 или WNetAddConnection3 вместо WNetUseConnection. Я думаю, что прохождение флага CONNECT_CRED_RESET должно позаботиться об этом, но я не совсем уверен.

Обратите внимание, что CONNECT_CRED_RESET задокументировано только для WNetAddConnection2, а не WNetAddConnection3, хотя MSDN говорит, что единственное различие между ними заключается в параметре hWnd для владельца диалоговых окон - я бы попробовал с WNetAddConnection2 и только если это работает, экспериментируйте с WNetAddConnection3. Вы можете даже заставить его работать с WNetUseConnection!

Обязательно обратите внимание на зависимости CONNECT_CRED_RESET от других флагов.

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