Доступ к сетевому файловому ресурсу в .Net Core ⇐ C#
Доступ к сетевому файловому ресурсу в .Net Core
Я пытаюсь получить доступ к общему сетевому ресурсу с помощью .NET Core. Я видел это решение для Net Standard:
Как указать имя пользователя и пароль при подключении к общей сетевой папке
публичный класс NetworkConnection: IDisposable { строка _networkName; public NetworkConnection (строка networkName, учетные данные NetworkCredential) { _networkName = имя сети; вар netResource = новый NetResource() { Область = ResourceScope.GlobalNetwork, ТипРесурса = ТипРесурса.Диск, DisplayType = ResourceDisplaytype.Share, Имя Удаленного = Имя Сети }; var userName = string.IsNullOrEmpty(credentials.Domain) ? учетные данные. Имя пользователя : string.Format(@"{0}\{1}", учётные данные.Домен, учётные данные.Имя пользователя); результат вар = WNetAddConnection2( сетевой ресурс, учетные данные.Пароль, имя пользователя, 0); если (результат != 0) { выдать новое исключение Win32Exception(результат); } } ~Сетевоесоединение() { Утилизировать (ложь); } публичная недействительность Dispose() { Утилизировать (правда); GC.SuppressFinalize(это); } защищенная виртуальная пустота Dispose (удаление bool) { WNetCancelConnection2 (_networkName, 0, правда); } [DllImport("mpr.dll")] частный статический extern int WNetAddConnection2 (NetResource netResource, строковый пароль, строковое имя пользователя, флаги int); [DllImport("mpr.dll")] частный статический extern int WNetCancelConnection2 (имя строки, флаги int, логическая сила); } [StructLayout(LayoutKind.Sequential)] общедоступный класс NetResource { общедоступная область ResourceScope; общедоступный тип ресурса общественный ResourceDisplaytype DisplayType; общественное использование int; общедоступная строка LocalName; общедоступная строка RemoteName; публичная строка Комментарий; поставщик публичной строки; } публичное перечисление ResourceScope: int { Подключено = 1, Глобальная сеть, Вспомнил, Недавний, Контекст }; публичное перечисление ResourceType: int { Любой = 0, Диск = 1, Печать = 2, Зарезервировано = 8, } публичное перечисление ResourceDisplaytype: int { Общий = 0x0, Домен = 0x01, Сервер = 0x02, Поделиться = 0x03, Файл = 0x04, Группа = 0x05, Сеть = 0x06, Корень = 0x07, Общий доступ = 0x08, Каталог = 0x09, Дерево = 0x0a, Ндсконтейнер = 0x0b } Я читал, что использование [DllImport("mpr.dll")] в ядре не рекомендуется. Есть ли основной способ сделать это в .net?
Я пытаюсь получить доступ к общему сетевому ресурсу с помощью .NET Core. Я видел это решение для Net Standard:
Как указать имя пользователя и пароль при подключении к общей сетевой папке
публичный класс NetworkConnection: IDisposable { строка _networkName; public NetworkConnection (строка networkName, учетные данные NetworkCredential) { _networkName = имя сети; вар netResource = новый NetResource() { Область = ResourceScope.GlobalNetwork, ТипРесурса = ТипРесурса.Диск, DisplayType = ResourceDisplaytype.Share, Имя Удаленного = Имя Сети }; var userName = string.IsNullOrEmpty(credentials.Domain) ? учетные данные. Имя пользователя : string.Format(@"{0}\{1}", учётные данные.Домен, учётные данные.Имя пользователя); результат вар = WNetAddConnection2( сетевой ресурс, учетные данные.Пароль, имя пользователя, 0); если (результат != 0) { выдать новое исключение Win32Exception(результат); } } ~Сетевоесоединение() { Утилизировать (ложь); } публичная недействительность Dispose() { Утилизировать (правда); GC.SuppressFinalize(это); } защищенная виртуальная пустота Dispose (удаление bool) { WNetCancelConnection2 (_networkName, 0, правда); } [DllImport("mpr.dll")] частный статический extern int WNetAddConnection2 (NetResource netResource, строковый пароль, строковое имя пользователя, флаги int); [DllImport("mpr.dll")] частный статический extern int WNetCancelConnection2 (имя строки, флаги int, логическая сила); } [StructLayout(LayoutKind.Sequential)] общедоступный класс NetResource { общедоступная область ResourceScope; общедоступный тип ресурса общественный ResourceDisplaytype DisplayType; общественное использование int; общедоступная строка LocalName; общедоступная строка RemoteName; публичная строка Комментарий; поставщик публичной строки; } публичное перечисление ResourceScope: int { Подключено = 1, Глобальная сеть, Вспомнил, Недавний, Контекст }; публичное перечисление ResourceType: int { Любой = 0, Диск = 1, Печать = 2, Зарезервировано = 8, } публичное перечисление ResourceDisplaytype: int { Общий = 0x0, Домен = 0x01, Сервер = 0x02, Поделиться = 0x03, Файл = 0x04, Группа = 0x05, Сеть = 0x06, Корень = 0x07, Общий доступ = 0x08, Каталог = 0x09, Дерево = 0x0a, Ндсконтейнер = 0x0b } Я читал, что использование [DllImport("mpr.dll")] в ядре не рекомендуется. Есть ли основной способ сделать это в .net?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение