Открыть / закрыть соединение с UNC без учетных данных
-
05-07-2019 - |
Вопрос
У меня есть клиентское приложение .NET, которое периодически теряет соединение с общим ресурсом UNC, где пользователь находится в домене или имеет локальную учетную запись с такими же учетными данными на сервере. И у SO, и у Google есть множество примеров использования LogonUser и WNetAddConnection через P-Invoke, но оба требуют пароль пользователя. Все, что нужно нашему приложению - это явно открыть соединение с UNC, скопировать файл и явно закрыть соединение, не предоставляя учетные данные - другими словами, используя текущие учетные данные. Может кто-нибудь указать мне правильное направление, как это сделать в C #?
Решение
Согласно документации WNetAddConnection2 функцию, вы можете передать Null для имени пользователя, чтобы использовать пользовательский контекст текущего процесса. Я предполагаю, что это означает, что он будет использовать контекст безопасности учетной записи, на которой запущено ваше клиентское приложение. MSDN также сообщает, что необходимо ввести Null для пароля, чтобы использовать пароль, связанный с указанным именем пользователя.
Может быть, установка обоих значений на Null просто волшебным образом сработает.