Открыть / закрыть соединение с UNC без учетных данных

StackOverflow https://stackoverflow.com/questions/1608757

Вопрос

У меня есть клиентское приложение .NET, которое периодически теряет соединение с общим ресурсом UNC, где пользователь находится в домене или имеет локальную учетную запись с такими же учетными данными на сервере. И у SO, и у Google есть множество примеров использования LogonUser и WNetAddConnection через P-Invoke, но оба требуют пароль пользователя. Все, что нужно нашему приложению - это явно открыть соединение с UNC, скопировать файл и явно закрыть соединение, не предоставляя учетные данные - другими словами, используя текущие учетные данные. Может кто-нибудь указать мне правильное направление, как это сделать в C #?

Это было полезно?

Решение

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

Может быть, установка обоих значений на Null просто волшебным образом сработает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top